diff --git a/a3p-integration/package.json b/a3p-integration/package.json
index fe2648a303b..2ff49e98742 100644
--- a/a3p-integration/package.json
+++ b/a3p-integration/package.json
@@ -1,7 +1,7 @@
{
"private": true,
"agoricSyntheticChain": {
- "fromTag": "use-upgrade-13"
+ "fromTag": "use-upgrade-14"
},
"scripts": {
"build": "yarn run build:sdk && yarn run build:submission && yarn run build:synthetic-chain",
@@ -12,7 +12,7 @@
"doctor": "yarn synthetic-chain doctor"
},
"dependencies": {
- "@agoric/synthetic-chain": "^0.0.7"
+ "@agoric/synthetic-chain": "^0.0.10"
},
"packageManager": "yarn@4.1.0",
"license": "Apache-2.0"
diff --git a/a3p-integration/proposals/a:upgrade-14/ante-fees.test.js b/a3p-integration/proposals/a:upgrade-14/ante-fees.test.js
deleted file mode 100644
index b32a938a664..00000000000
--- a/a3p-integration/proposals/a:upgrade-14/ante-fees.test.js
+++ /dev/null
@@ -1,74 +0,0 @@
-import test from 'ava';
-
-import { CHAINID, GOV1ADDR, GOV2ADDR, agd } from '@agoric/synthetic-chain';
-
-test(`ante handler sends fee only to vbank/reserve`, async t => {
- const [feeCollector, vbankReserve] = await Promise.all(
- // Look up addresses for fee collector and reserve accounts.
- ['fee_collector', 'vbank/reserve'].map(async name => {
- const {
- account: {
- '@type': moduleAcct,
- base_account: { address },
- },
- } = await agd.query('auth', 'module-account', name);
-
- t.is(
- moduleAcct,
- '/cosmos.auth.v1beta1.ModuleAccount',
- `${name} is a module account`,
- );
- return address;
- }),
- );
-
- const getBalances = addresses =>
- Promise.all(
- addresses.map(async address => {
- const { balances } = await agd.query('bank', 'balances', address);
- return balances;
- }),
- );
-
- const [feeCollectorStartBalances, vbankReserveStartBalances] =
- await getBalances([feeCollector, vbankReserve]);
-
- // Send a transaction with a known fee.
- const feeAmount = 999n;
- const feeDenom = 'uist';
- const result = await agd.tx(
- `bank send ${GOV1ADDR} ${GOV2ADDR} 1234ubld --fees=${feeAmount}${feeDenom} \
- --from=${GOV1ADDR} --chain-id=${CHAINID} --keyring-backend=test --yes`,
- );
- t.like(result, { code: 0 });
-
- const [feeCollectorEndBalances, vbankReserveEndBalances] = await getBalances([
- feeCollector,
- vbankReserve,
- ]);
- t.deepEqual(feeCollectorEndBalances, feeCollectorStartBalances);
-
- // The reserve balances should have increased by exactly the fee (possibly
- // from zero, in which case start balances wouldn't include its denomination).
- const feeDenomIndex = vbankReserveStartBalances.findIndex(
- ({ denom }) => denom === feeDenom,
- );
- const preFeeAmount =
- feeDenomIndex < 0
- ? 0n
- : BigInt(vbankReserveStartBalances[feeDenomIndex].amount);
- const beforeCount =
- feeDenomIndex < 0 ? vbankReserveStartBalances.length : feeDenomIndex;
-
- const vbankReserveExpectedBalances = [
- ...vbankReserveStartBalances.slice(0, beforeCount),
- { amount: String(preFeeAmount + feeAmount), denom: feeDenom },
- ...vbankReserveStartBalances.slice(beforeCount + 1),
- ];
-
- t.deepEqual(
- vbankReserveEndBalances,
- vbankReserveExpectedBalances,
- 'vbank/reserve should receive the fee',
- );
-});
diff --git a/a3p-integration/proposals/a:upgrade-14/core-eval-test-submission/README.md b/a3p-integration/proposals/a:upgrade-14/core-eval-test-submission/README.md
deleted file mode 100644
index dd60f098b11..00000000000
--- a/a3p-integration/proposals/a:upgrade-14/core-eval-test-submission/README.md
+++ /dev/null
@@ -1,6 +0,0 @@
-These files enable a test of core-eval in an upgraded chain.
-
-send-script is a test submission, which is transmitted in ../core-eval.test.js.
-Some template values in the `.tjs` file are replaced before submitting the
-core-eval. The test then verifies that the core-eval written the expected
-values to vstorage.
diff --git a/a3p-integration/proposals/a:upgrade-14/core-eval-test-submission/send-script-permit.json b/a3p-integration/proposals/a:upgrade-14/core-eval-test-submission/send-script-permit.json
deleted file mode 100644
index 27ba77ddaf6..00000000000
--- a/a3p-integration/proposals/a:upgrade-14/core-eval-test-submission/send-script-permit.json
+++ /dev/null
@@ -1 +0,0 @@
-true
diff --git a/a3p-integration/proposals/a:upgrade-14/core-eval-test-submission/send-script.tjs b/a3p-integration/proposals/a:upgrade-14/core-eval-test-submission/send-script.tjs
deleted file mode 100644
index 5ae5192335c..00000000000
--- a/a3p-integration/proposals/a:upgrade-14/core-eval-test-submission/send-script.tjs
+++ /dev/null
@@ -1,30 +0,0 @@
-#! false node --ignore-this-line
-/* global E */
-
-///
-///
-
-/**
- * Write a value to chain storage
- *
- * see ../core-eval.test.js
- *
- * @param {BootstrapPowers} powers
- */
-const writeIt = async powers => {
- const nodePath = '{{NODE_PATH}}';
- const nodeValue = '{{NODE_VALUE}}';
- const {
- consume: { chainStorage },
- } = powers;
-
- let node = chainStorage;
-
- for (const nodeName of nodePath.split('.')) {
- node = E(node).makeChildNode(nodeName);
- }
-
- await E(node).setValue(nodeValue);
-};
-
-writeIt;
diff --git a/a3p-integration/proposals/a:upgrade-14/core-eval.test.js b/a3p-integration/proposals/a:upgrade-14/core-eval.test.js
deleted file mode 100644
index ab94ec5ac3f..00000000000
--- a/a3p-integration/proposals/a:upgrade-14/core-eval.test.js
+++ /dev/null
@@ -1,52 +0,0 @@
-/* eslint-disable @jessie.js/safe-await-separator */
-import test from 'ava';
-import { readFile, writeFile } from 'node:fs/promises';
-
-import { agd, evalBundles, waitForBlock } from '@agoric/synthetic-chain';
-
-const SUBMISSION_DIR = 'core-eval-test-submission';
-
-/**
- * @param {string} fileName base file name without .tjs extension
- * @param {Record} replacements
- */
-const replaceTemplateValuesInFile = async (fileName, replacements) => {
- let script = await readFile(`${fileName}.tjs`, 'utf-8');
- for (const [template, value] of Object.entries(replacements)) {
- script = script.replaceAll(`{{${template}}}`, value);
- }
- await writeFile(`${fileName}.js`, script);
-};
-
-const readPublished = async path => {
- const { value } = await agd.query(
- 'vstorage',
- 'data',
- '--output',
- 'json',
- `published.${path}`,
- );
- if (value === '') {
- return undefined;
- }
- const obj = JSON.parse(value);
- return obj.values[0];
-};
-
-test(`core eval works`, async t => {
- const nodePath = 'foo.bar';
- const nodeValue = 'baz';
-
- t.falsy(await readPublished(nodePath));
-
- await replaceTemplateValuesInFile(`${SUBMISSION_DIR}/send-script`, {
- NODE_PATH: nodePath,
- NODE_VALUE: nodeValue,
- });
-
- await evalBundles(SUBMISSION_DIR);
-
- await waitForBlock(2); // enough time for core eval to execute ?
-
- t.is(await readPublished(nodePath), nodeValue);
-});
diff --git a/a3p-integration/proposals/a:upgrade-14/create-kread-item-test.sh b/a3p-integration/proposals/a:upgrade-14/create-kread-item-test.sh
deleted file mode 100755
index 0fdae98f792..00000000000
--- a/a3p-integration/proposals/a:upgrade-14/create-kread-item-test.sh
+++ /dev/null
@@ -1,20 +0,0 @@
-#!/bin/bash
-set -euo pipefail
-
-source /usr/src/upgrade-test-scripts/env_setup.sh
-
-OFFER=$(mktemp -t agops.XXX)
-agops vaults open --wantMinted 6.00 --giveCollateral 9.0 >|"$OFFER"
-agoric wallet send --offer "$OFFER" --from gov1 --keyring-backend="test"
-
-
-govamount="200000000ubld"
-provisionSmartWallet $GOV1ADDR $govamount
-
-KREAD_ITEM_OFFER=$(mktemp -t kreadItem.XXX)
-node ./generate-kread-item-request.mjs > $KREAD_ITEM_OFFER
-agops perf satisfaction --from $GOV1ADDR --executeOffer $KREAD_ITEM_OFFER --keyring-backend=test
-
-agd query vstorage data published.wallet.$GOV1ADDR.current -o json >& gov1.out
-name=`jq '.value | fromjson | .values[2] | fromjson | .body[1:] | fromjson | .purses[1].balance.value.payload[0][0].name ' gov1.out`
-test_val $name \"ephemeral_Ace\" "found KREAd character"
diff --git a/a3p-integration/proposals/a:upgrade-14/generate-kread-item-request.mjs b/a3p-integration/proposals/a:upgrade-14/generate-kread-item-request.mjs
deleted file mode 100644
index be9e07d6dde..00000000000
--- a/a3p-integration/proposals/a:upgrade-14/generate-kread-item-request.mjs
+++ /dev/null
@@ -1,76 +0,0 @@
-/* global process */
-import assert from 'assert';
-import { execFile } from 'child_process';
-
-const ISTunit = 1_000_000n; // aka displayInfo: { decimalPlaces: 6 }
-
-const id = `KREAd-test-${Date.now()}`;
-
-// poor-man's zx
-const $ = cmd => {
- const [file, ...args] = cmd.split(' ');
-
- return new Promise((resolve, reject) => {
- execFile(file, args, { encoding: 'utf8' }, (err, out) => {
- if (err) return reject(err);
- resolve(out);
- });
- });
-};
-
-const zip = (xs, ys) => xs.map((x, i) => [x, ys[i]]);
-
-const fromSmallCapsEntries = txt => {
- const { body, slots } = JSON.parse(txt);
- const theEntries = zip(JSON.parse(body.slice(1)), slots).map(
- ([[name, ref], boardID]) => {
- const iface = ref.replace(/^\$\d+\./, '');
- return [name, { iface, boardID }];
- },
- );
- return Object.fromEntries(theEntries);
-};
-
-const brand = fromSmallCapsEntries(
- await $('agoric follow -lF :published.agoricNames.brand -o text'),
-);
-assert(brand.IST);
-
-const slots = []; // XXX global mutable state
-
-const smallCaps = {
- Nat: n => `+${n}`,
- // XXX mutates obj
- ref: obj => {
- if (obj.ix) return obj.ix;
- const ix = slots.length;
- slots.push(obj.boardID);
- obj.ix = `$${ix}.Alleged: ${obj.iface}`;
- return obj.ix;
- },
-};
-
-const body = {
- method: 'executeOffer',
- offer: {
- id,
- invitationSpec: {
- source: 'agoricContract',
- instancePath: ['kread'],
- callPipe: [['makeMintCharacterInvitation', []]],
- },
- offerArgs: { name: 'ephemeral_Ace' },
- proposal: {
- give: {
- Price: {
- brand: smallCaps.ref(brand.IST),
- value: smallCaps.Nat(5n * ISTunit) }
- },
- },
- },
-};
-
-const capData = { body: `#${JSON.stringify(body)}`, slots };
-const action = JSON.stringify(capData);
-
-console.log(action);
diff --git a/a3p-integration/proposals/a:upgrade-14/invite-submission/README.md b/a3p-integration/proposals/a:upgrade-14/invite-submission/README.md
deleted file mode 100644
index 345d5cd67f2..00000000000
--- a/a3p-integration/proposals/a:upgrade-14/invite-submission/README.md
+++ /dev/null
@@ -1,8 +0,0 @@
-These files enable a test of the walletFactory changes, by
-verifying that upgraded wallets that aren't backed by vbanks can still add
-assets, in this case an invitation.
-
-sendInvite is a secondary submission, which is transmitted in ../wallet-repair.test.js.
-Some template values in the `.tjs` file are replaced before submitting the
-core-eval. The test then verifies that the invitation details were written to
-the wallet in vstorage.
diff --git a/a3p-integration/proposals/a:upgrade-14/invite-submission/sendInvite-permit.json b/a3p-integration/proposals/a:upgrade-14/invite-submission/sendInvite-permit.json
deleted file mode 100644
index 27ba77ddaf6..00000000000
--- a/a3p-integration/proposals/a:upgrade-14/invite-submission/sendInvite-permit.json
+++ /dev/null
@@ -1 +0,0 @@
-true
diff --git a/a3p-integration/proposals/a:upgrade-14/invite-submission/sendInvite.tjs b/a3p-integration/proposals/a:upgrade-14/invite-submission/sendInvite.tjs
deleted file mode 100644
index e0ac3556255..00000000000
--- a/a3p-integration/proposals/a:upgrade-14/invite-submission/sendInvite.tjs
+++ /dev/null
@@ -1,39 +0,0 @@
-#! false node --ignore-this-line
-/* global E */
-
-///
-///
-
-// to be replaced before execution
-const addr = '{{ADDRESS}}';
-
-/**
- * verify that a pre-existing wallet has an invitation purse that is still monitored
- *
- * @param {BootstrapPowers} powers
- */
-const sendInvitation = async powers => {
- console.log('sendInvitation start');
- // namesByAddress is broken #8113
- const {
- consume: { namesByAddressAdmin, zoe },
- instance: {
- consume: { reserve },
- },
- } = powers;
- const pf = E(zoe).getPublicFacet(reserve);
- const anInvitation = await E(pf).makeAddCollateralInvitation();
-
- await E(namesByAddressAdmin).reserve(addr);
- // don't trigger the namesByAddressAdmin.readonly() bug
- const addressAdmin = E(namesByAddressAdmin).lookupAdmin(addr);
-
- await E(addressAdmin).reserve('depositFacet');
- const addressHub = E(addressAdmin).readonly();
- const addressDepositFacet = E(addressHub).lookup('depositFacet');
-
- await E(addressDepositFacet).receive(anInvitation);
- console.log('ADDED an invitation to a purse!');
-};
-
-sendInvitation;
diff --git a/a3p-integration/proposals/a:upgrade-14/post.test.js b/a3p-integration/proposals/a:upgrade-14/post.test.js
deleted file mode 100644
index 3ca44b8eacf..00000000000
--- a/a3p-integration/proposals/a:upgrade-14/post.test.js
+++ /dev/null
@@ -1,15 +0,0 @@
-import test from 'ava';
-
-import { getIncarnation } from '@agoric/synthetic-chain';
-
-test(`Smart Wallet vat was upgraded`, async t => {
- const incarnation = await getIncarnation('walletFactory');
-
- t.is(incarnation, 2);
-});
-
-test(`Zoe vat was upgraded`, async t => {
- const incarnation = await getIncarnation('zoe');
-
- t.is(incarnation, 1);
-});
diff --git a/a3p-integration/proposals/a:upgrade-14/prepare.sh b/a3p-integration/proposals/a:upgrade-14/prepare.sh
deleted file mode 100755
index 9c72d81215c..00000000000
--- a/a3p-integration/proposals/a:upgrade-14/prepare.sh
+++ /dev/null
@@ -1,9 +0,0 @@
-#!/bin/bash
-
-# Exit when any command fails
-set -e
-
-# Place here any actions that should happen before the upgrade is proposed. The
-# actions are executed in the previous chain software, and the effects are
-# persisted so they can be used in the steps after the upgrade is complete,
-# such as in the "use" or "test" steps, or further proposal layers.
diff --git a/a3p-integration/proposals/a:upgrade-14/wallet-repairs.test.js b/a3p-integration/proposals/a:upgrade-14/wallet-repairs.test.js
deleted file mode 100755
index 6d50acb1d2f..00000000000
--- a/a3p-integration/proposals/a:upgrade-14/wallet-repairs.test.js
+++ /dev/null
@@ -1,46 +0,0 @@
-import { readFile, writeFile } from 'node:fs/promises';
-
-import test from 'ava';
-
-import { agd, getUser, evalBundles } from '@agoric/synthetic-chain';
-
-const SUBMISSION_DIR = 'invite-submission';
-
-/**
- * @param {string} fileName base file name without .tjs extension
- * @param {Record} replacements
- */
-const replaceTemplateValuesInFile = async (fileName, replacements) => {
- let script = await readFile(`${fileName}.tjs`, 'utf-8');
- for (const [template, value] of Object.entries(replacements)) {
- script = script.replaceAll(`{{${template}}}`, value);
- }
- await writeFile(`${fileName}.js`, script);
-};
-
-test('smartWallet repairs', async t => {
- const gov1Address = await getUser('gov1');
-
- await replaceTemplateValuesInFile(`${SUBMISSION_DIR}/sendInvite`, {
- ADDRESS: gov1Address,
- });
-
- await evalBundles(SUBMISSION_DIR);
-
- // agd query vstorage data published.wallet.$GOV1ADDR.current -o json \
- // |& jq '.value | fromjson | .values[0] | fromjson | .body[1:] \
- // | fromjson | .purses '
- const walletCurrent = await agd.query(
- 'vstorage',
- 'data',
- `published.wallet.${gov1Address}.current`,
- );
-
- const body = JSON.parse(JSON.parse(walletCurrent.value).values[0]);
- const bodyTruncated = JSON.parse(body.body.substring(1));
- const invitePurseBalance = bodyTruncated.purses[0].balance;
- t.truthy(invitePurseBalance.value[0], 'expecting a non-empty purse');
- const description = invitePurseBalance.value[0].description;
-
- t.is(description, 'Add Collateral', 'invitation purse should not be empty');
-});
diff --git a/a3p-integration/proposals/a:upgrade-14/.yarnrc.yml b/a3p-integration/proposals/a:upgrade-15/.yarnrc.yml
similarity index 100%
rename from a3p-integration/proposals/a:upgrade-14/.yarnrc.yml
rename to a3p-integration/proposals/a:upgrade-15/.yarnrc.yml
diff --git a/a3p-integration/proposals/a:upgrade-14/README.md b/a3p-integration/proposals/a:upgrade-15/README.md
similarity index 100%
rename from a3p-integration/proposals/a:upgrade-14/README.md
rename to a3p-integration/proposals/a:upgrade-15/README.md
diff --git a/a3p-integration/proposals/a:upgrade-15/exit-reclaim.test.js b/a3p-integration/proposals/a:upgrade-15/exit-reclaim.test.js
new file mode 100644
index 00000000000..c2bf31a5241
--- /dev/null
+++ b/a3p-integration/proposals/a:upgrade-15/exit-reclaim.test.js
@@ -0,0 +1,36 @@
+import test from 'ava';
+import { $ } from 'execa';
+import { execFileSync } from 'node:child_process';
+import { makeAgd, waitForBlock } from './synthetic-chain-excerpt.js';
+
+const offerId = 'bad-invitation-15'; // cf. prepare.sh
+const from = 'gov1';
+
+test('exitOffer tool reclaims stuck payment', async t => {
+ const showAndExec = (file, args, opts) => {
+ console.log('$', file, ...args);
+ return execFileSync(file, args, opts);
+ };
+ const agd = makeAgd({ execFileSync: showAndExec }).withOpts({
+ keyringBackend: 'test',
+ });
+
+ const addr = await agd.lookup(from);
+ t.log(from, 'addr', addr);
+
+ const getBalance = async target => {
+ const { balances } = await agd.query(['bank', 'balances', addr]);
+ const { amount } = balances.find(({ denom }) => denom === target);
+ return Number(amount);
+ };
+
+ const before = await getBalance('uist');
+ t.log('uist balance before:', before);
+
+ await $`node ./exitOffer.js --id ${offerId} --from ${from}`;
+
+ await waitForBlock(2);
+ const after = await getBalance('uist');
+ t.log('uist balance after:', after);
+ t.true(after > before);
+});
diff --git a/a3p-integration/proposals/a:upgrade-15/exitOffer.js b/a3p-integration/proposals/a:upgrade-15/exitOffer.js
new file mode 100644
index 00000000000..fb6d2242b85
--- /dev/null
+++ b/a3p-integration/proposals/a:upgrade-15/exitOffer.js
@@ -0,0 +1,97 @@
+// Note: limit imports to node modules for portability
+import { parseArgs, promisify } from 'node:util';
+import { execFile } from 'node:child_process';
+import { writeFile, mkdtemp, rm } from 'node:fs/promises';
+import { join } from 'node:path';
+
+const options = /** @type {const} */ ({
+ id: { type: 'string' },
+ from: { type: 'string' },
+ bin: { type: 'string', default: '/usr/src/agoric-sdk/node_modules/.bin' },
+});
+
+const Usage = `
+Try to exit an offer, reclaiming any associated payments.
+
+ node exitOffer.js --id ID --from FROM [--bin PATH]
+
+Options:
+ --id
+ --from
+
+ --bin default: ${options.bin.default}
+`;
+
+const badUsage = () => {
+ const reason = new Error(Usage);
+ reason.name = 'USAGE';
+ throw reason;
+};
+
+const { stringify: q } = JSON;
+// limited to JSON data: no remotables/promises; no undefined.
+const toCapData = data => ({ body: `#${q(data)}`, slots: [] });
+
+const { entries } = Object;
+/**
+ * @param {Record} obj - e.g. { color: 'blue' }
+ * @returns {string[]} - e.g. ['--color', 'blue']
+ */
+const flags = obj =>
+ entries(obj)
+ .map(([k, v]) => [`--${k}`, v])
+ .flat();
+
+const execP = promisify(execFile);
+
+const showAndRun = (file, args) => {
+ console.log('$', file, ...args);
+ return execP(file, args);
+};
+
+const withTempFile = async (tail, fn) => {
+ const tmpDir = await mkdtemp('offers-');
+ const tmpFile = join(tmpDir, tail);
+ try {
+ const result = await fn(tmpFile);
+ return result;
+ } finally {
+ await rm(tmpDir, { recursive: true, force: true }).catch(err =>
+ console.error(err),
+ );
+ }
+};
+
+const doAction = async (action, from) => {
+ await withTempFile('offer.json', async tmpOffer => {
+ await writeFile(tmpOffer, q(toCapData(action)));
+
+ const out = await showAndRun('agoric', [
+ 'wallet',
+ ...flags({ 'keyring-backend': 'test' }),
+ 'send',
+ ...flags({ offer: tmpOffer, from }),
+ ]);
+ return out.stdout;
+ });
+};
+
+const main = async (argv, env) => {
+ const { values } = parseArgs({ args: argv.slice(2), options });
+ const { id: offerId, from, bin } = values;
+ (offerId && from) || badUsage();
+
+ env.PATH = `${bin}:${env.PATH}`;
+ const action = { method: 'tryExitOffer', offerId };
+ const out = await doAction(action, from);
+ console.log(out);
+};
+
+main(process.argv, process.env).catch(e => {
+ if (e.name === 'USAGE' || e.code === 'ERR_PARSE_ARGS_UNKNOWN_OPTION') {
+ console.error(e.message);
+ } else {
+ console.error(e);
+ }
+ process.exit(1);
+});
diff --git a/a3p-integration/proposals/a:upgrade-15/initial.test.js b/a3p-integration/proposals/a:upgrade-15/initial.test.js
new file mode 100644
index 00000000000..0b5e159282b
--- /dev/null
+++ b/a3p-integration/proposals/a:upgrade-15/initial.test.js
@@ -0,0 +1,16 @@
+import test from 'ava';
+
+import { getVatDetails } from '@agoric/synthetic-chain';
+
+const vats = {
+ walletFactory: { incarnation: 3 },
+ zoe: { incarnation: 1 },
+};
+
+test(`vat details`, async t => {
+ await null;
+ for (const [vatName, expected] of Object.entries(vats)) {
+ const actual = await getVatDetails(vatName);
+ t.like(actual, expected, `${vatName} details mismatch`);
+ }
+});
diff --git a/a3p-integration/proposals/a:upgrade-14/package.json b/a3p-integration/proposals/a:upgrade-15/package.json
similarity index 69%
rename from a3p-integration/proposals/a:upgrade-14/package.json
rename to a3p-integration/proposals/a:upgrade-15/package.json
index 1c9e384b4ac..53b5e71f084 100644
--- a/a3p-integration/proposals/a:upgrade-14/package.json
+++ b/a3p-integration/proposals/a:upgrade-15/package.json
@@ -1,15 +1,15 @@
{
"agoricProposal": {
- "releaseNotes": "https://github.com/Agoric/agoric-sdk/releases/tag/agoric-upgrade-14",
+ "releaseNotes": false,
"sdkImageTag": "unreleased",
- "planName": "agoric-upgrade-14",
+ "planName": "agoric-upgrade-15",
"upgradeInfo": {},
"type": "Software Upgrade Proposal"
},
"type": "module",
"license": "Apache-2.0",
"dependencies": {
- "@agoric/synthetic-chain": "^0.0.7",
+ "@agoric/synthetic-chain": "^0.0.10",
"ava": "^5.3.1"
},
"ava": {
diff --git a/a3p-integration/proposals/a:upgrade-15/prepare.sh b/a3p-integration/proposals/a:upgrade-15/prepare.sh
new file mode 100755
index 00000000000..febb39d835f
--- /dev/null
+++ b/a3p-integration/proposals/a:upgrade-15/prepare.sh
@@ -0,0 +1,29 @@
+#!/bin/bash
+
+# Exit when any command fails
+set -uxeo pipefail
+
+# Place here any actions that should happen before the upgrade is proposed. The
+# actions are executed in the previous chain software, and the effects are
+# persisted so they can be used in the steps after the upgrade is complete,
+# such as in the "use" or "test" steps, or further proposal layers.
+
+printISTBalance() {
+ addr=$(agd keys show -a "$1" --keyring-backend=test)
+ agd query bank balances "$addr" -o json \
+ | jq -c '.balances[] | select(.denom=="uist")'
+
+}
+
+echo TEST: Offer with bad invitation
+printISTBalance gov1
+
+badInvitationOffer=$(mktemp)
+cat > "$badInvitationOffer" << 'EOF'
+{"body":"#{\"method\":\"executeOffer\",\"offer\":{\"id\":\"bad-invitation-15\",\"invitationSpec\":{\"callPipe\":[[\"badMethodName\"]],\"instancePath\":[\"reserve\"],\"source\":\"agoricContract\"},\"proposal\":{\"give\":{\"Collateral\":{\"brand\":\"$0.Alleged: IST brand\",\"value\":\"+15000\"}}}}}","slots":["board0257"]}
+EOF
+
+PATH=/usr/src/agoric-sdk/node_modules/.bin:$PATH
+agops perf satisfaction --keyring-backend=test send --executeOffer "$badInvitationOffer" --from gov1 || true
+
+printISTBalance gov1
diff --git a/a3p-integration/proposals/a:upgrade-15/synthetic-chain-excerpt.js b/a3p-integration/proposals/a:upgrade-15/synthetic-chain-excerpt.js
new file mode 100644
index 00000000000..ff0211591ee
--- /dev/null
+++ b/a3p-integration/proposals/a:upgrade-15/synthetic-chain-excerpt.js
@@ -0,0 +1,166 @@
+/**
+ * @file work-around: importing @agoric/synthetic-chain hangs XXX
+ */
+// @ts-check
+import { $ } from 'execa';
+
+const waitForBootstrap = async () => {
+ const endpoint = 'localhost';
+ while (true) {
+ const { stdout: json } = await $({
+ reject: false,
+ })`curl -s --fail -m 15 ${`${endpoint}:26657/status`}`;
+
+ if (json.length === 0) {
+ continue;
+ }
+
+ const data = JSON.parse(json);
+
+ if (data.jsonrpc !== '2.0') {
+ continue;
+ }
+
+ const lastHeight = data.result.sync_info.latest_block_height;
+
+ if (lastHeight !== '1') {
+ return lastHeight;
+ }
+
+ await new Promise(r => setTimeout(r, 2000));
+ }
+};
+
+export const waitForBlock = async (times = 1) => {
+ console.log(times);
+ let time = 0;
+ while (time < times) {
+ const block1 = await waitForBootstrap();
+ while (true) {
+ const block2 = await waitForBootstrap();
+
+ if (block1 !== block2) {
+ console.log('block produced');
+ break;
+ }
+
+ await new Promise(r => setTimeout(r, 1000));
+ }
+ time += 1;
+ }
+};
+
+const { freeze } = Object;
+
+const agdBinary = 'agd';
+
+/**
+ * @param {{execFileSync: typeof import('child_process').execFileSync }} io
+ * @returns
+ */
+export const makeAgd = ({ execFileSync }) => {
+ /**
+ * @param {{
+ * home?: string;
+ * keyringBackend?: string;
+ * rpcAddrs?: string[];
+ * }} opts
+ */
+ const make = ({ home, keyringBackend, rpcAddrs } = {}) => {
+ const keyringArgs = [
+ ...(home ? ['--home', home] : []),
+ ...(keyringBackend ? [`--keyring-backend`, keyringBackend] : []),
+ ];
+ if (rpcAddrs) {
+ assert.equal(
+ rpcAddrs.length,
+ 1,
+ 'XXX rpcAddrs must contain only one entry',
+ );
+ }
+ const nodeArgs = [...(rpcAddrs ? [`--node`, rpcAddrs[0]] : [])];
+
+ const exec = (args, opts) => execFileSync(agdBinary, args, opts).toString();
+
+ const outJson = ['--output', 'json'];
+
+ const ro = freeze({
+ status: async () => JSON.parse(exec([...nodeArgs, 'status'])),
+ query: async qArgs => {
+ const out = exec(['query', ...qArgs, ...nodeArgs, ...outJson], {
+ encoding: 'utf-8',
+ stdio: ['ignore', 'pipe', 'ignore'],
+ });
+
+ try {
+ return JSON.parse(out);
+ } catch (e) {
+ console.error(e);
+ console.info('output:', out);
+ }
+ },
+ });
+ const nameHub = freeze({
+ /**
+ * NOTE: synchronous I/O
+ */
+ lookup: (...path) => {
+ if (!Array.isArray(path)) {
+ // TODO: use COND || Fail``
+ throw TypeError();
+ }
+ if (path.length !== 1) {
+ throw Error(`path length limited to 1: ${path.length}`);
+ }
+ const [name] = path;
+ const txt = exec(['keys', 'show', `--address`, name, ...keyringArgs]);
+ return txt.trim();
+ },
+ });
+ const rw = freeze({
+ /**
+ * @param {string[]} txArgs
+ * @param {{ chainId: string, from: string, yes?: boolean }} opts
+ */
+ tx: async (txArgs, { chainId, from, yes }) => {
+ const yesArg = yes ? ['--yes'] : [];
+ const args = [
+ ...nodeArgs,
+ ...[`--chain-id`, chainId],
+ ...keyringArgs,
+ ...[`--from`, from],
+ 'tx',
+ ...['--broadcast-mode', 'block'],
+ ...['--gas', 'auto'],
+ ...['--gas-adjustment', '1.3'],
+ ...txArgs,
+ ...yesArg,
+ ...outJson,
+ ];
+ const out = exec(args);
+ try {
+ return JSON.parse(out);
+ } catch (e) {
+ console.error(e);
+ console.info('output:', out);
+ }
+ },
+ ...ro,
+ ...nameHub,
+ readOnly: () => ro,
+ nameHub: () => nameHub,
+ keys: {
+ add: (name, mnemonic) => {
+ return execFileSync(
+ agdBinary,
+ [...keyringArgs, 'keys', 'add', name, '--recover'],
+ { input: mnemonic },
+ ).toString();
+ },
+ },
+ withOpts: opts => make({ home, keyringBackend, rpcAddrs, ...opts }),
+ });
+ return rw;
+ };
+ return make();
+};
diff --git a/a3p-integration/proposals/a:upgrade-14/test.sh b/a3p-integration/proposals/a:upgrade-15/test.sh
similarity index 85%
rename from a3p-integration/proposals/a:upgrade-14/test.sh
rename to a3p-integration/proposals/a:upgrade-15/test.sh
index e5ffbbe5f9c..dd653d58e64 100755
--- a/a3p-integration/proposals/a:upgrade-14/test.sh
+++ b/a3p-integration/proposals/a:upgrade-15/test.sh
@@ -4,5 +4,3 @@
# The effects of this step are not persisted in further proposal layers.
yarn ava
-
-./create-kread-item-test.sh
diff --git a/a3p-integration/proposals/a:upgrade-14/tsconfig.json b/a3p-integration/proposals/a:upgrade-15/tsconfig.json
similarity index 100%
rename from a3p-integration/proposals/a:upgrade-14/tsconfig.json
rename to a3p-integration/proposals/a:upgrade-15/tsconfig.json
diff --git a/a3p-integration/proposals/a:upgrade-14/use.sh b/a3p-integration/proposals/a:upgrade-15/use.sh
similarity index 85%
rename from a3p-integration/proposals/a:upgrade-14/use.sh
rename to a3p-integration/proposals/a:upgrade-15/use.sh
index 094b3f7f881..368002c4db4 100755
--- a/a3p-integration/proposals/a:upgrade-14/use.sh
+++ b/a3p-integration/proposals/a:upgrade-15/use.sh
@@ -4,3 +4,5 @@
# actions are executed in the upgraded chain software and the effects are
# persisted in the generated image for the upgrade, so they can be used in
# later steps, such as the "test" step, or further proposal layers.
+
+source /usr/src/upgrade-test-scripts/env_setup.sh
diff --git a/a3p-integration/proposals/a:upgrade-14/yarn.lock b/a3p-integration/proposals/a:upgrade-15/yarn.lock
similarity index 91%
rename from a3p-integration/proposals/a:upgrade-14/yarn.lock
rename to a3p-integration/proposals/a:upgrade-15/yarn.lock
index f56cdd73ed9..10e3085345d 100644
--- a/a3p-integration/proposals/a:upgrade-14/yarn.lock
+++ b/a3p-integration/proposals/a:upgrade-15/yarn.lock
@@ -5,9 +5,9 @@ __metadata:
version: 8
cacheKey: 10c0
-"@agoric/synthetic-chain@npm:^0.0.7":
- version: 0.0.7
- resolution: "@agoric/synthetic-chain@npm:0.0.7"
+"@agoric/synthetic-chain@npm:^0.0.10":
+ version: 0.0.10
+ resolution: "@agoric/synthetic-chain@npm:0.0.10"
dependencies:
"@endo/zip": "npm:^1.0.1"
better-sqlite3: "npm:^9.4.0"
@@ -15,14 +15,14 @@ __metadata:
execa: "npm:^8.0.1"
bin:
synthetic-chain: dist/cli/cli.js
- checksum: 10c0/ae53a9c4837eecc7db5020c8e0ac46f02a5a8ae6679adfe5e32365d6895f8ca8eb1da2dad3b3dc7a545ec801275b1a53d68bb0737db462ec9ea82bbcffe37374
+ checksum: 10c0/c75308830cbe879ba865e285a20529ac82da1434c778046b27c790e426a8139369c3ef904939905ad73109202a336925733448109a85bc19aa2d350ebdb2a520
languageName: node
linkType: hard
"@endo/zip@npm:^1.0.1":
- version: 1.0.1
- resolution: "@endo/zip@npm:1.0.1"
- checksum: 10c0/1074bdc10287f4c94b3423e130da88f9c6ba09c999483c1164b3eed061350a060d2dbe377cfa3b8d4a86b3f1c3aed5cbf0cdd78ee2bf2cb9b837caa2ebbf712f
+ version: 1.0.4
+ resolution: "@endo/zip@npm:1.0.4"
+ checksum: 10c0/f5a8fa5bc32b5909164af238a0b1b801a121549ae512228fe6d2edcd6167116c4a88886f9a009f4702d4381388cbafd95adb912a64f9c8cfd59c3b251e984e78
languageName: node
linkType: hard
@@ -68,15 +68,15 @@ __metadata:
linkType: hard
"@npmcli/agent@npm:^2.0.0":
- version: 2.2.0
- resolution: "@npmcli/agent@npm:2.2.0"
+ version: 2.2.2
+ resolution: "@npmcli/agent@npm:2.2.2"
dependencies:
agent-base: "npm:^7.1.0"
http-proxy-agent: "npm:^7.0.0"
https-proxy-agent: "npm:^7.0.1"
lru-cache: "npm:^10.0.1"
- socks-proxy-agent: "npm:^8.0.1"
- checksum: 10c0/7b89590598476dda88e79c473766b67c682aae6e0ab0213491daa6083dcc0c171f86b3868f5506f22c09aa5ea69ad7dfb78f4bf39a8dca375d89a42f408645b3
+ socks-proxy-agent: "npm:^8.0.3"
+ checksum: 10c0/325e0db7b287d4154ecd164c0815c08007abfb07653cc57bceded17bb7fd240998a3cbdbe87d700e30bef494885eccc725ab73b668020811d56623d145b524ae
languageName: node
linkType: hard
@@ -104,27 +104,27 @@ __metadata:
linkType: hard
"acorn-walk@npm:^8.2.0":
- version: 8.3.1
- resolution: "acorn-walk@npm:8.3.1"
- checksum: 10c0/a23d2f7c6b6cad617f4c77f14dfeb062a239208d61753e9ba808d916c550add92b39535467d2e6028280761ac4f5a904cc9df21530b84d3f834e3edef74ddde5
+ version: 8.3.2
+ resolution: "acorn-walk@npm:8.3.2"
+ checksum: 10c0/7e2a8dad5480df7f872569b9dccff2f3da7e65f5353686b1d6032ab9f4ddf6e3a2cb83a9b52cf50b1497fd522154dda92f0abf7153290cc79cd14721ff121e52
languageName: node
linkType: hard
"acorn@npm:^8.8.2":
- version: 8.11.2
- resolution: "acorn@npm:8.11.2"
+ version: 8.11.3
+ resolution: "acorn@npm:8.11.3"
bin:
acorn: bin/acorn
- checksum: 10c0/a3ed76c761b75ec54b1ec3068fb7f113a182e95aea7f322f65098c2958d232e3d211cb6dac35ff9c647024b63714bc528a26d54a925d1fef2c25585b4c8e4017
+ checksum: 10c0/3ff155f8812e4a746fee8ecff1f227d527c4c45655bb1fad6347c3cb58e46190598217551b1500f18542d2bbe5c87120cb6927f5a074a59166fbdd9468f0a299
languageName: node
linkType: hard
-"agent-base@npm:^7.0.2, agent-base@npm:^7.1.0":
- version: 7.1.0
- resolution: "agent-base@npm:7.1.0"
+"agent-base@npm:^7.0.2, agent-base@npm:^7.1.0, agent-base@npm:^7.1.1":
+ version: 7.1.1
+ resolution: "agent-base@npm:7.1.1"
dependencies:
debug: "npm:^4.3.4"
- checksum: 10c0/fc974ab57ffdd8421a2bc339644d312a9cca320c20c3393c9d8b1fd91731b9bbabdb985df5fc860f5b79d81c3e350daa3fcb31c5c07c0bb385aafc817df004ce
+ checksum: 10c0/e59ce7bed9c63bf071a30cc471f2933862044c97fd9958967bfe22521d7a0f601ce4ed5a8c011799d0c726ca70312142ae193bbebb60f576b52be19d4a363b50
languageName: node
linkType: hard
@@ -291,20 +291,20 @@ __metadata:
linkType: hard
"better-sqlite3@npm:^9.4.0":
- version: 9.4.0
- resolution: "better-sqlite3@npm:9.4.0"
+ version: 9.5.0
+ resolution: "better-sqlite3@npm:9.5.0"
dependencies:
bindings: "npm:^1.5.0"
node-gyp: "npm:latest"
prebuild-install: "npm:^7.1.1"
- checksum: 10c0/42b2edfa46d62763514b87122245a3513a5ff20f05fef4fb49fec33f3de0a51a29025596178f57c634b8013f16bbdf8169a308fb3e3b8d126d715788d72d1e74
+ checksum: 10c0/285f9a7e4b54b3bc9a8a034e4b19a73dab364637581429fd55765612429bf37790606cf53e01b0dd1feac0c5b02a30098916a595e11083a42dd503f739412c25
languageName: node
linkType: hard
"binary-extensions@npm:^2.0.0":
- version: 2.2.0
- resolution: "binary-extensions@npm:2.2.0"
- checksum: 10c0/d73d8b897238a2d3ffa5f59c0241870043aa7471335e89ea5e1ff48edb7c2d0bb471517a3e4c5c3f4c043615caa2717b5f80a5e61e07503d51dc85cb848e665d
+ version: 2.3.0
+ resolution: "binary-extensions@npm:2.3.0"
+ checksum: 10c0/75a59cafc10fb12a11d510e77110c6c7ae3f4ca22463d52487709ca7f18f69d886aa387557cc9864fbdb10153d0bdb4caacabf11541f55e89ed6e18d12ece2b5
languageName: node
linkType: hard
@@ -364,8 +364,8 @@ __metadata:
linkType: hard
"cacache@npm:^18.0.0":
- version: 18.0.1
- resolution: "cacache@npm:18.0.1"
+ version: 18.0.2
+ resolution: "cacache@npm:18.0.2"
dependencies:
"@npmcli/fs": "npm:^3.1.0"
fs-minipass: "npm:^3.0.0"
@@ -379,7 +379,7 @@ __metadata:
ssri: "npm:^10.0.0"
tar: "npm:^6.1.11"
unique-filename: "npm:^3.0.0"
- checksum: 10c0/a31666805a80a8b16ad3f85faf66750275a9175a3480896f4f6d31b5d53ef190484fabd71bdb6d2ea5603c717fbef09f4af03d6a65b525c8ef0afaa44c361866
+ checksum: 10c0/7992665305cc251a984f4fdbab1449d50e88c635bc43bf2785530c61d239c61b349e5734461baa461caaee65f040ab14e2d58e694f479c0810cffd181ba5eabc
languageName: node
linkType: hard
@@ -407,8 +407,8 @@ __metadata:
linkType: hard
"chokidar@npm:^3.5.3":
- version: 3.5.3
- resolution: "chokidar@npm:3.5.3"
+ version: 3.6.0
+ resolution: "chokidar@npm:3.6.0"
dependencies:
anymatch: "npm:~3.1.2"
braces: "npm:~3.0.2"
@@ -421,7 +421,7 @@ __metadata:
dependenciesMeta:
fsevents:
optional: true
- checksum: 10c0/1076953093e0707c882a92c66c0f56ba6187831aa51bb4de878c1fec59ae611a3bf02898f190efec8e77a086b8df61c2b2a3ea324642a0558bdf8ee6c5dc9ca1
+ checksum: 10c0/8361dcd013f2ddbe260eacb1f3cb2f2c6f2b0ad118708a343a5ed8158941a39cb8fb1d272e0f389712e74ee90ce8ba864eece9e0e62b9705cb468a2f6d917462
languageName: node
linkType: hard
@@ -617,9 +617,9 @@ __metadata:
linkType: hard
"detect-libc@npm:^2.0.0":
- version: 2.0.2
- resolution: "detect-libc@npm:2.0.2"
- checksum: 10c0/a9f4ffcd2701525c589617d98afe5a5d0676c8ea82bcc4ed6f3747241b79f781d36437c59a5e855254c864d36a3e9f8276568b6b531c28d6e53b093a15703f11
+ version: 2.0.3
+ resolution: "detect-libc@npm:2.0.3"
+ checksum: 10c0/88095bda8f90220c95f162bf92cad70bd0e424913e655c20578600e35b91edc261af27531cf160a331e185c0ced93944bc7e09939143225f56312d7fd800fdb7
languageName: node
linkType: hard
@@ -640,9 +640,9 @@ __metadata:
linkType: hard
"emittery@npm:^1.0.1":
- version: 1.0.1
- resolution: "emittery@npm:1.0.1"
- checksum: 10c0/2587f2f42bb5e004ba1cde61352d2151f4dd4f29eb79ad36f82e200da2faec9742d7bfca1492a024d60396e001e4b07d9b2b9c43be33547ff751ba8ff87c42ce
+ version: 1.0.3
+ resolution: "emittery@npm:1.0.3"
+ checksum: 10c0/91605d044f3891dd1f8ab731aeb94b520488b21e707f7064dcbcf5303bac3b4e7133dfa23c343ede1fc970340bd78a9b1aed522b805bc15104606bba630dd71e
languageName: node
linkType: hard
@@ -693,9 +693,9 @@ __metadata:
linkType: hard
"escalade@npm:^3.1.1":
- version: 3.1.1
- resolution: "escalade@npm:3.1.1"
- checksum: 10c0/afd02e6ca91ffa813e1108b5e7756566173d6bc0d1eb951cb44d6b21702ec17c1cf116cfe75d4a2b02e05acb0b808a7a9387d0d1ca5cf9c04ad03a8445c3e46d
+ version: 3.1.2
+ resolution: "escalade@npm:3.1.2"
+ checksum: 10c0/6b4adafecd0682f3aa1cd1106b8fff30e492c7015b178bc81b2d2f75106dabea6c6d6e8508fc491bd58e597c74abb0e8e2368f943ecb9393d4162e3c2f3cf287
languageName: node
linkType: hard
@@ -782,11 +782,11 @@ __metadata:
linkType: hard
"fastq@npm:^1.6.0":
- version: 1.15.0
- resolution: "fastq@npm:1.15.0"
+ version: 1.17.1
+ resolution: "fastq@npm:1.17.1"
dependencies:
reusify: "npm:^1.0.4"
- checksum: 10c0/5ce4f83afa5f88c9379e67906b4d31bc7694a30826d6cc8d0f0473c966929017fda65c2174b0ec89f064ede6ace6c67f8a4fe04cef42119b6a55b0d465554c24
+ checksum: 10c0/1095f16cea45fb3beff558bb3afa74ca7a9250f5a670b65db7ed585f92b4b48381445cd328b3d87323da81e43232b5d5978a8201bde84e0cd514310f1ea6da34
languageName: node
linkType: hard
@@ -911,17 +911,17 @@ __metadata:
linkType: hard
"glob@npm:^10.2.2, glob@npm:^10.3.10":
- version: 10.3.10
- resolution: "glob@npm:10.3.10"
+ version: 10.3.12
+ resolution: "glob@npm:10.3.12"
dependencies:
foreground-child: "npm:^3.1.0"
- jackspeak: "npm:^2.3.5"
+ jackspeak: "npm:^2.3.6"
minimatch: "npm:^9.0.1"
- minipass: "npm:^5.0.0 || ^6.0.2 || ^7.0.0"
- path-scurry: "npm:^1.10.1"
+ minipass: "npm:^7.0.4"
+ path-scurry: "npm:^1.10.2"
bin:
glob: dist/esm/bin.mjs
- checksum: 10c0/13d8a1feb7eac7945f8c8480e11cd4a44b24d26503d99a8d8ac8d5aefbf3e9802a2b6087318a829fad04cb4e829f25c5f4f1110c68966c498720dd261c7e344d
+ checksum: 10c0/f60cefdc1cf3f958b2bb5823e1b233727f04916d489dc4641d76914f016e6704421e06a83cbb68b0cb1cb9382298b7a88075b844ad2127fc9727ea22b18b0711
languageName: node
linkType: hard
@@ -953,22 +953,22 @@ __metadata:
linkType: hard
"http-proxy-agent@npm:^7.0.0":
- version: 7.0.0
- resolution: "http-proxy-agent@npm:7.0.0"
+ version: 7.0.2
+ resolution: "http-proxy-agent@npm:7.0.2"
dependencies:
agent-base: "npm:^7.1.0"
debug: "npm:^4.3.4"
- checksum: 10c0/a11574ff39436cee3c7bc67f259444097b09474605846ddd8edf0bf4ad8644be8533db1aa463426e376865047d05dc22755e638632819317c0c2f1b2196657c8
+ checksum: 10c0/4207b06a4580fb85dd6dff521f0abf6db517489e70863dca1a0291daa7f2d3d2d6015a57bd702af068ea5cf9f1f6ff72314f5f5b4228d299c0904135d2aef921
languageName: node
linkType: hard
"https-proxy-agent@npm:^7.0.1":
- version: 7.0.2
- resolution: "https-proxy-agent@npm:7.0.2"
+ version: 7.0.4
+ resolution: "https-proxy-agent@npm:7.0.4"
dependencies:
agent-base: "npm:^7.0.2"
debug: "npm:4"
- checksum: 10c0/7735eb90073db087e7e79312e3d97c8c04baf7ea7ca7b013382b6a45abbaa61b281041a98f4e13c8c80d88f843785bcc84ba189165b4b4087b1e3496ba656d77
+ checksum: 10c0/bc4f7c38da32a5fc622450b6cb49a24ff596f9bd48dcedb52d2da3fa1c1a80e100fb506bd59b326c012f21c863c69b275c23de1a01d0b84db396822fdf25e52b
languageName: node
linkType: hard
@@ -1003,9 +1003,9 @@ __metadata:
linkType: hard
"ignore@npm:^5.2.4":
- version: 5.3.0
- resolution: "ignore@npm:5.3.0"
- checksum: 10c0/dc06bea5c23aae65d0725a957a0638b57e235ae4568dda51ca142053ed2c352de7e3bc93a69b2b32ac31966a1952e9a93c5ef2e2ab7c6b06aef9808f6b55b571
+ version: 5.3.1
+ resolution: "ignore@npm:5.3.1"
+ checksum: 10c0/703f7f45ffb2a27fb2c5a8db0c32e7dee66b33a225d28e8db4e1be6474795f606686a6e3bcc50e1aa12f2042db4c9d4a7d60af3250511de74620fbed052ea4cd
languageName: node
linkType: hard
@@ -1044,10 +1044,13 @@ __metadata:
languageName: node
linkType: hard
-"ip@npm:^2.0.0":
- version: 2.0.0
- resolution: "ip@npm:2.0.0"
- checksum: 10c0/8d186cc5585f57372847ae29b6eba258c68862055e18a75cc4933327232cb5c107f89800ce29715d542eef2c254fbb68b382e780a7414f9ee7caf60b7a473958
+"ip-address@npm:^9.0.5":
+ version: 9.0.5
+ resolution: "ip-address@npm:9.0.5"
+ dependencies:
+ jsbn: "npm:1.1.0"
+ sprintf-js: "npm:^1.1.3"
+ checksum: 10c0/331cd07fafcb3b24100613e4b53e1a2b4feab11e671e655d46dc09ee233da5011284d09ca40c4ecbdfe1d0004f462958675c224a804259f2f78d2465a87824bc
languageName: node
linkType: hard
@@ -1160,7 +1163,7 @@ __metadata:
languageName: node
linkType: hard
-"jackspeak@npm:^2.3.5":
+"jackspeak@npm:^2.3.6":
version: 2.3.6
resolution: "jackspeak@npm:2.3.6"
dependencies:
@@ -1192,6 +1195,13 @@ __metadata:
languageName: node
linkType: hard
+"jsbn@npm:1.1.0":
+ version: 1.1.0
+ resolution: "jsbn@npm:1.1.0"
+ checksum: 10c0/4f907fb78d7b712e11dea8c165fe0921f81a657d3443dde75359ed52eb2b5d33ce6773d97985a089f09a65edd80b11cb75c767b57ba47391fee4c969f7215c96
+ languageName: node
+ linkType: hard
+
"load-json-file@npm:^7.0.0":
version: 7.0.1
resolution: "load-json-file@npm:7.0.1"
@@ -1215,10 +1225,10 @@ __metadata:
languageName: node
linkType: hard
-"lru-cache@npm:^10.0.1, lru-cache@npm:^9.1.1 || ^10.0.0":
- version: 10.1.0
- resolution: "lru-cache@npm:10.1.0"
- checksum: 10c0/778bc8b2626daccd75f24c4b4d10632496e21ba064b126f526c626fbdbc5b28c472013fccd45d7646b9e1ef052444824854aed617b59cd570d01a8b7d651fc1e
+"lru-cache@npm:^10.0.1, lru-cache@npm:^10.2.0":
+ version: 10.2.0
+ resolution: "lru-cache@npm:10.2.0"
+ checksum: 10c0/c9847612aa2daaef102d30542a8d6d9b2c2bb36581c1bf0dc3ebf5e5f3352c772a749e604afae2e46873b930a9e9523743faac4e5b937c576ab29196774712ee
languageName: node
linkType: hard
@@ -1326,11 +1336,11 @@ __metadata:
linkType: hard
"minimatch@npm:^9.0.1":
- version: 9.0.3
- resolution: "minimatch@npm:9.0.3"
+ version: 9.0.4
+ resolution: "minimatch@npm:9.0.4"
dependencies:
brace-expansion: "npm:^2.0.1"
- checksum: 10c0/85f407dcd38ac3e180f425e86553911d101455ca3ad5544d6a7cec16286657e4f8a9aa6695803025c55e31e35a91a2252b5dc8e7d527211278b8b65b4dbd5eac
+ checksum: 10c0/2c16f21f50e64922864e560ff97c587d15fd491f65d92a677a344e970fe62aafdbeafe648965fa96d33c061b4d0eabfe0213466203dd793367e7f28658cf6414
languageName: node
linkType: hard
@@ -1408,7 +1418,7 @@ __metadata:
languageName: node
linkType: hard
-"minipass@npm:^5.0.0 || ^6.0.2 || ^7.0.0, minipass@npm:^7.0.2, minipass@npm:^7.0.3":
+"minipass@npm:^5.0.0 || ^6.0.2 || ^7.0.0, minipass@npm:^7.0.2, minipass@npm:^7.0.3, minipass@npm:^7.0.4":
version: 7.0.4
resolution: "minipass@npm:7.0.4"
checksum: 10c0/6c7370a6dfd257bf18222da581ba89a5eaedca10e158781232a8b5542a90547540b4b9b7e7f490e4cda43acfbd12e086f0453728ecf8c19e0ef6921bc5958ac5
@@ -1470,17 +1480,17 @@ __metadata:
linkType: hard
"node-abi@npm:^3.3.0":
- version: 3.54.0
- resolution: "node-abi@npm:3.54.0"
+ version: 3.58.0
+ resolution: "node-abi@npm:3.58.0"
dependencies:
semver: "npm:^7.3.5"
- checksum: 10c0/9ebbb21e6951aa51e831549ed62b68dc56bcc10f6b21ffd04195a16a6abf5ddfc48b6ae5e3334720fe4459cafde5ec8103025902efff5599d0539f8656fc694e
+ checksum: 10c0/1e46c48598852eef976fcf772ed83dd90dec06c2251f00bee341a235c494b3116d408810aae3c2fdbb8c228953310034fc0c66c0abdfe42b5d5df276e79f0ee2
languageName: node
linkType: hard
"node-gyp@npm:latest":
- version: 10.0.1
- resolution: "node-gyp@npm:10.0.1"
+ version: 10.1.0
+ resolution: "node-gyp@npm:10.1.0"
dependencies:
env-paths: "npm:^2.2.0"
exponential-backoff: "npm:^3.1.1"
@@ -1494,7 +1504,7 @@ __metadata:
which: "npm:^4.0.0"
bin:
node-gyp: bin/node-gyp.js
- checksum: 10c0/abddfff7d873312e4ed4a5fb75ce893a5c4fb69e7fcb1dfa71c28a6b92a7f1ef6b62790dffb39181b5a82728ba8f2f32d229cf8cbe66769fe02cea7db4a555aa
+ checksum: 10c0/9cc821111ca244a01fb7f054db7523ab0a0cd837f665267eb962eb87695d71fb1e681f9e21464cc2fd7c05530dc4c81b810bca1a88f7d7186909b74477491a3c
languageName: node
linkType: hard
@@ -1524,11 +1534,11 @@ __metadata:
linkType: hard
"npm-run-path@npm:^5.1.0":
- version: 5.1.0
- resolution: "npm-run-path@npm:5.1.0"
+ version: 5.3.0
+ resolution: "npm-run-path@npm:5.3.0"
dependencies:
path-key: "npm:^4.0.0"
- checksum: 10c0/ff6d77514489f47fa1c3b1311d09cd4b6d09a874cc1866260f9dea12cbaabda0436ed7f8c2ee44d147bf99a3af29307c6f63b0f83d242b0b6b0ab25dff2629e3
+ checksum: 10c0/124df74820c40c2eb9a8612a254ea1d557ddfab1581c3e751f825e3e366d9f00b0d76a3c94ecd8398e7f3eee193018622677e95816e8491f0797b21e30b2deba
languageName: node
linkType: hard
@@ -1637,13 +1647,13 @@ __metadata:
languageName: node
linkType: hard
-"path-scurry@npm:^1.10.1":
- version: 1.10.1
- resolution: "path-scurry@npm:1.10.1"
+"path-scurry@npm:^1.10.2":
+ version: 1.10.2
+ resolution: "path-scurry@npm:1.10.2"
dependencies:
- lru-cache: "npm:^9.1.1 || ^10.0.0"
+ lru-cache: "npm:^10.2.0"
minipass: "npm:^5.0.0 || ^6.0.2 || ^7.0.0"
- checksum: 10c0/e5dc78a7348d25eec61ab166317e9e9c7b46818aa2c2b9006c507a6ff48c672d011292d9662527213e558f5652ce0afcc788663a061d8b59ab495681840c0c1e
+ checksum: 10c0/d723777fbf9627f201e64656680f66ebd940957eebacf780e6cce1c2919c29c116678b2d7dbf8821b3a2caa758d125f4444005ccec886a25c8f324504e48e601
languageName: node
linkType: hard
@@ -1681,8 +1691,8 @@ __metadata:
linkType: hard
"prebuild-install@npm:^7.1.1":
- version: 7.1.1
- resolution: "prebuild-install@npm:7.1.1"
+ version: 7.1.2
+ resolution: "prebuild-install@npm:7.1.2"
dependencies:
detect-libc: "npm:^2.0.0"
expand-template: "npm:^2.0.3"
@@ -1698,7 +1708,7 @@ __metadata:
tunnel-agent: "npm:^0.6.0"
bin:
prebuild-install: bin.js
- checksum: 10c0/6dc70f36b0f4adcb2fe0ed38d874ab28b571fb1a9725d769e8ba3f64a15831e58462de09f3e6e64569bcc4a3e03b9328b56faa0d45fe10ae1574478814536c76
+ checksum: 10c0/e64868ba9ef2068fd7264f5b03e5298a901e02a450acdb1f56258d88c09dea601eefdb3d1dfdff8513fdd230a92961712be0676192626a3b4d01ba154d48bdd3
languageName: node
linkType: hard
@@ -1820,7 +1830,7 @@ __metadata:
version: 0.0.0-use.local
resolution: "root-workspace-0b6124@workspace:."
dependencies:
- "@agoric/synthetic-chain": "npm:^0.0.7"
+ "@agoric/synthetic-chain": "npm:^0.0.10"
ava: "npm:^5.3.1"
languageName: unknown
linkType: soft
@@ -1849,13 +1859,13 @@ __metadata:
linkType: hard
"semver@npm:^7.3.2, semver@npm:^7.3.5":
- version: 7.5.4
- resolution: "semver@npm:7.5.4"
+ version: 7.6.0
+ resolution: "semver@npm:7.6.0"
dependencies:
lru-cache: "npm:^6.0.0"
bin:
semver: bin/semver.js
- checksum: 10c0/5160b06975a38b11c1ab55950cb5b8a23db78df88275d3d8a42ccf1f29e55112ac995b3a26a522c36e3b5f76b0445f1eef70d696b8c7862a2b4303d7b0e7609e
+ checksum: 10c0/fbfe717094ace0aa8d6332d7ef5ce727259815bd8d8815700853f4faf23aacbd7192522f0dc5af6df52ef4fa85a355ebd2f5d39f554bd028200d6cf481ab9b53
languageName: node
linkType: hard
@@ -1933,24 +1943,31 @@ __metadata:
languageName: node
linkType: hard
-"socks-proxy-agent@npm:^8.0.1":
- version: 8.0.2
- resolution: "socks-proxy-agent@npm:8.0.2"
+"socks-proxy-agent@npm:^8.0.3":
+ version: 8.0.3
+ resolution: "socks-proxy-agent@npm:8.0.3"
dependencies:
- agent-base: "npm:^7.0.2"
+ agent-base: "npm:^7.1.1"
debug: "npm:^4.3.4"
socks: "npm:^2.7.1"
- checksum: 10c0/a842402fc9b8848a31367f2811ca3cd14c4106588b39a0901cd7a69029998adfc6456b0203617c18ed090542ad0c24ee4e9d4c75a0c4b75071e214227c177eb7
+ checksum: 10c0/4950529affd8ccd6951575e21c1b7be8531b24d924aa4df3ee32df506af34b618c4e50d261f4cc603f1bfd8d426915b7d629966c8ce45b05fb5ad8c8b9a6459d
languageName: node
linkType: hard
"socks@npm:^2.7.1":
- version: 2.7.1
- resolution: "socks@npm:2.7.1"
+ version: 2.8.3
+ resolution: "socks@npm:2.8.3"
dependencies:
- ip: "npm:^2.0.0"
+ ip-address: "npm:^9.0.5"
smart-buffer: "npm:^4.2.0"
- checksum: 10c0/43f69dbc9f34fc8220bc51c6eea1c39715ab3cfdb115d6e3285f6c7d1a603c5c75655668a5bbc11e3c7e2c99d60321fb8d7ab6f38cda6a215fadd0d6d0b52130
+ checksum: 10c0/d54a52bf9325165770b674a67241143a3d8b4e4c8884560c4e0e078aace2a728dffc7f70150660f51b85797c4e1a3b82f9b7aa25e0a0ceae1a243365da5c51a7
+ languageName: node
+ linkType: hard
+
+"sprintf-js@npm:^1.1.3":
+ version: 1.1.3
+ resolution: "sprintf-js@npm:1.1.3"
+ checksum: 10c0/09270dc4f30d479e666aee820eacd9e464215cdff53848b443964202bf4051490538e5dd1b42e1a65cf7296916ca17640aebf63dae9812749c7542ee5f288dec
languageName: node
linkType: hard
@@ -2080,8 +2097,8 @@ __metadata:
linkType: hard
"tar@npm:^6.1.11, tar@npm:^6.1.2":
- version: 6.2.0
- resolution: "tar@npm:6.2.0"
+ version: 6.2.1
+ resolution: "tar@npm:6.2.1"
dependencies:
chownr: "npm:^2.0.0"
fs-minipass: "npm:^2.0.0"
@@ -2089,7 +2106,7 @@ __metadata:
minizlib: "npm:^2.1.1"
mkdirp: "npm:^1.0.3"
yallist: "npm:^4.0.0"
- checksum: 10c0/02ca064a1a6b4521fef88c07d389ac0936730091f8c02d30ea60d472e0378768e870769ab9e986d87807bfee5654359cf29ff4372746cc65e30cbddc352660d8
+ checksum: 10c0/a5eca3eb50bc11552d453488344e6507156b9193efd7635e98e867fab275d527af53d8866e2370cd09dfe74378a18111622ace35af6a608e5223a7d27fe99537
languageName: node
linkType: hard
diff --git a/a3p-integration/yarn.lock b/a3p-integration/yarn.lock
index 3223e3fb0b5..76c5dcd11b9 100644
--- a/a3p-integration/yarn.lock
+++ b/a3p-integration/yarn.lock
@@ -5,9 +5,9 @@ __metadata:
version: 8
cacheKey: 10c0
-"@agoric/synthetic-chain@npm:^0.0.7":
- version: 0.0.7
- resolution: "@agoric/synthetic-chain@npm:0.0.7"
+"@agoric/synthetic-chain@npm:^0.0.10":
+ version: 0.0.10
+ resolution: "@agoric/synthetic-chain@npm:0.0.10"
dependencies:
"@endo/zip": "npm:^1.0.1"
better-sqlite3: "npm:^9.4.0"
@@ -15,14 +15,14 @@ __metadata:
execa: "npm:^8.0.1"
bin:
synthetic-chain: dist/cli/cli.js
- checksum: 10c0/ae53a9c4837eecc7db5020c8e0ac46f02a5a8ae6679adfe5e32365d6895f8ca8eb1da2dad3b3dc7a545ec801275b1a53d68bb0737db462ec9ea82bbcffe37374
+ checksum: 10c0/c75308830cbe879ba865e285a20529ac82da1434c778046b27c790e426a8139369c3ef904939905ad73109202a336925733448109a85bc19aa2d350ebdb2a520
languageName: node
linkType: hard
"@endo/zip@npm:^1.0.1":
- version: 1.0.1
- resolution: "@endo/zip@npm:1.0.1"
- checksum: 10c0/1074bdc10287f4c94b3423e130da88f9c6ba09c999483c1164b3eed061350a060d2dbe377cfa3b8d4a86b3f1c3aed5cbf0cdd78ee2bf2cb9b837caa2ebbf712f
+ version: 1.0.4
+ resolution: "@endo/zip@npm:1.0.4"
+ checksum: 10c0/f5a8fa5bc32b5909164af238a0b1b801a121549ae512228fe6d2edcd6167116c4a88886f9a009f4702d4381388cbafd95adb912a64f9c8cfd59c3b251e984e78
languageName: node
linkType: hard
@@ -41,15 +41,15 @@ __metadata:
linkType: hard
"@npmcli/agent@npm:^2.0.0":
- version: 2.2.0
- resolution: "@npmcli/agent@npm:2.2.0"
+ version: 2.2.2
+ resolution: "@npmcli/agent@npm:2.2.2"
dependencies:
agent-base: "npm:^7.1.0"
http-proxy-agent: "npm:^7.0.0"
https-proxy-agent: "npm:^7.0.1"
lru-cache: "npm:^10.0.1"
- socks-proxy-agent: "npm:^8.0.1"
- checksum: 10c0/7b89590598476dda88e79c473766b67c682aae6e0ab0213491daa6083dcc0c171f86b3868f5506f22c09aa5ea69ad7dfb78f4bf39a8dca375d89a42f408645b3
+ socks-proxy-agent: "npm:^8.0.3"
+ checksum: 10c0/325e0db7b287d4154ecd164c0815c08007abfb07653cc57bceded17bb7fd240998a3cbdbe87d700e30bef494885eccc725ab73b668020811d56623d145b524ae
languageName: node
linkType: hard
@@ -76,12 +76,12 @@ __metadata:
languageName: node
linkType: hard
-"agent-base@npm:^7.0.2, agent-base@npm:^7.1.0":
- version: 7.1.0
- resolution: "agent-base@npm:7.1.0"
+"agent-base@npm:^7.0.2, agent-base@npm:^7.1.0, agent-base@npm:^7.1.1":
+ version: 7.1.1
+ resolution: "agent-base@npm:7.1.1"
dependencies:
debug: "npm:^4.3.4"
- checksum: 10c0/fc974ab57ffdd8421a2bc339644d312a9cca320c20c3393c9d8b1fd91731b9bbabdb985df5fc860f5b79d81c3e350daa3fcb31c5c07c0bb385aafc817df004ce
+ checksum: 10c0/e59ce7bed9c63bf071a30cc471f2933862044c97fd9958967bfe22521d7a0f601ce4ed5a8c011799d0c726ca70312142ae193bbebb60f576b52be19d4a363b50
languageName: node
linkType: hard
@@ -140,13 +140,13 @@ __metadata:
linkType: hard
"better-sqlite3@npm:^9.4.0":
- version: 9.4.0
- resolution: "better-sqlite3@npm:9.4.0"
+ version: 9.5.0
+ resolution: "better-sqlite3@npm:9.5.0"
dependencies:
bindings: "npm:^1.5.0"
node-gyp: "npm:latest"
prebuild-install: "npm:^7.1.1"
- checksum: 10c0/42b2edfa46d62763514b87122245a3513a5ff20f05fef4fb49fec33f3de0a51a29025596178f57c634b8013f16bbdf8169a308fb3e3b8d126d715788d72d1e74
+ checksum: 10c0/285f9a7e4b54b3bc9a8a034e4b19a73dab364637581429fd55765612429bf37790606cf53e01b0dd1feac0c5b02a30098916a595e11083a42dd503f739412c25
languageName: node
linkType: hard
@@ -293,9 +293,9 @@ __metadata:
linkType: hard
"detect-libc@npm:^2.0.0":
- version: 2.0.2
- resolution: "detect-libc@npm:2.0.2"
- checksum: 10c0/a9f4ffcd2701525c589617d98afe5a5d0676c8ea82bcc4ed6f3747241b79f781d36437c59a5e855254c864d36a3e9f8276568b6b531c28d6e53b093a15703f11
+ version: 2.0.3
+ resolution: "detect-libc@npm:2.0.3"
+ checksum: 10c0/88095bda8f90220c95f162bf92cad70bd0e424913e655c20578600e35b91edc261af27531cf160a331e185c0ced93944bc7e09939143225f56312d7fd800fdb7
languageName: node
linkType: hard
@@ -440,17 +440,17 @@ __metadata:
linkType: hard
"glob@npm:^10.2.2, glob@npm:^10.3.10":
- version: 10.3.10
- resolution: "glob@npm:10.3.10"
+ version: 10.3.12
+ resolution: "glob@npm:10.3.12"
dependencies:
foreground-child: "npm:^3.1.0"
- jackspeak: "npm:^2.3.5"
+ jackspeak: "npm:^2.3.6"
minimatch: "npm:^9.0.1"
- minipass: "npm:^5.0.0 || ^6.0.2 || ^7.0.0"
- path-scurry: "npm:^1.10.1"
+ minipass: "npm:^7.0.4"
+ path-scurry: "npm:^1.10.2"
bin:
glob: dist/esm/bin.mjs
- checksum: 10c0/13d8a1feb7eac7945f8c8480e11cd4a44b24d26503d99a8d8ac8d5aefbf3e9802a2b6087318a829fad04cb4e829f25c5f4f1110c68966c498720dd261c7e344d
+ checksum: 10c0/f60cefdc1cf3f958b2bb5823e1b233727f04916d489dc4641d76914f016e6704421e06a83cbb68b0cb1cb9382298b7a88075b844ad2127fc9727ea22b18b0711
languageName: node
linkType: hard
@@ -469,22 +469,22 @@ __metadata:
linkType: hard
"http-proxy-agent@npm:^7.0.0":
- version: 7.0.0
- resolution: "http-proxy-agent@npm:7.0.0"
+ version: 7.0.2
+ resolution: "http-proxy-agent@npm:7.0.2"
dependencies:
agent-base: "npm:^7.1.0"
debug: "npm:^4.3.4"
- checksum: 10c0/a11574ff39436cee3c7bc67f259444097b09474605846ddd8edf0bf4ad8644be8533db1aa463426e376865047d05dc22755e638632819317c0c2f1b2196657c8
+ checksum: 10c0/4207b06a4580fb85dd6dff521f0abf6db517489e70863dca1a0291daa7f2d3d2d6015a57bd702af068ea5cf9f1f6ff72314f5f5b4228d299c0904135d2aef921
languageName: node
linkType: hard
"https-proxy-agent@npm:^7.0.1":
- version: 7.0.2
- resolution: "https-proxy-agent@npm:7.0.2"
+ version: 7.0.4
+ resolution: "https-proxy-agent@npm:7.0.4"
dependencies:
agent-base: "npm:^7.0.2"
debug: "npm:4"
- checksum: 10c0/7735eb90073db087e7e79312e3d97c8c04baf7ea7ca7b013382b6a45abbaa61b281041a98f4e13c8c80d88f843785bcc84ba189165b4b4087b1e3496ba656d77
+ checksum: 10c0/bc4f7c38da32a5fc622450b6cb49a24ff596f9bd48dcedb52d2da3fa1c1a80e100fb506bd59b326c012f21c863c69b275c23de1a01d0b84db396822fdf25e52b
languageName: node
linkType: hard
@@ -539,10 +539,13 @@ __metadata:
languageName: node
linkType: hard
-"ip@npm:^2.0.0":
- version: 2.0.0
- resolution: "ip@npm:2.0.0"
- checksum: 10c0/8d186cc5585f57372847ae29b6eba258c68862055e18a75cc4933327232cb5c107f89800ce29715d542eef2c254fbb68b382e780a7414f9ee7caf60b7a473958
+"ip-address@npm:^9.0.5":
+ version: 9.0.5
+ resolution: "ip-address@npm:9.0.5"
+ dependencies:
+ jsbn: "npm:1.1.0"
+ sprintf-js: "npm:^1.1.3"
+ checksum: 10c0/331cd07fafcb3b24100613e4b53e1a2b4feab11e671e655d46dc09ee233da5011284d09ca40c4ecbdfe1d0004f462958675c224a804259f2f78d2465a87824bc
languageName: node
linkType: hard
@@ -581,7 +584,7 @@ __metadata:
languageName: node
linkType: hard
-"jackspeak@npm:^2.3.5":
+"jackspeak@npm:^2.3.6":
version: 2.3.6
resolution: "jackspeak@npm:2.3.6"
dependencies:
@@ -594,10 +597,17 @@ __metadata:
languageName: node
linkType: hard
-"lru-cache@npm:^10.0.1, lru-cache@npm:^9.1.1 || ^10.0.0":
- version: 10.1.0
- resolution: "lru-cache@npm:10.1.0"
- checksum: 10c0/778bc8b2626daccd75f24c4b4d10632496e21ba064b126f526c626fbdbc5b28c472013fccd45d7646b9e1ef052444824854aed617b59cd570d01a8b7d651fc1e
+"jsbn@npm:1.1.0":
+ version: 1.1.0
+ resolution: "jsbn@npm:1.1.0"
+ checksum: 10c0/4f907fb78d7b712e11dea8c165fe0921f81a657d3443dde75359ed52eb2b5d33ce6773d97985a089f09a65edd80b11cb75c767b57ba47391fee4c969f7215c96
+ languageName: node
+ linkType: hard
+
+"lru-cache@npm:^10.0.1, lru-cache@npm:^10.2.0":
+ version: 10.2.0
+ resolution: "lru-cache@npm:10.2.0"
+ checksum: 10c0/c9847612aa2daaef102d30542a8d6d9b2c2bb36581c1bf0dc3ebf5e5f3352c772a749e604afae2e46873b930a9e9523743faac4e5b937c576ab29196774712ee
languageName: node
linkType: hard
@@ -651,11 +661,11 @@ __metadata:
linkType: hard
"minimatch@npm:^9.0.1":
- version: 9.0.3
- resolution: "minimatch@npm:9.0.3"
+ version: 9.0.4
+ resolution: "minimatch@npm:9.0.4"
dependencies:
brace-expansion: "npm:^2.0.1"
- checksum: 10c0/85f407dcd38ac3e180f425e86553911d101455ca3ad5544d6a7cec16286657e4f8a9aa6695803025c55e31e35a91a2252b5dc8e7d527211278b8b65b4dbd5eac
+ checksum: 10c0/2c16f21f50e64922864e560ff97c587d15fd491f65d92a677a344e970fe62aafdbeafe648965fa96d33c061b4d0eabfe0213466203dd793367e7f28658cf6414
languageName: node
linkType: hard
@@ -733,7 +743,7 @@ __metadata:
languageName: node
linkType: hard
-"minipass@npm:^5.0.0 || ^6.0.2 || ^7.0.0, minipass@npm:^7.0.2, minipass@npm:^7.0.3":
+"minipass@npm:^5.0.0 || ^6.0.2 || ^7.0.0, minipass@npm:^7.0.2, minipass@npm:^7.0.3, minipass@npm:^7.0.4":
version: 7.0.4
resolution: "minipass@npm:7.0.4"
checksum: 10c0/6c7370a6dfd257bf18222da581ba89a5eaedca10e158781232a8b5542a90547540b4b9b7e7f490e4cda43acfbd12e086f0453728ecf8c19e0ef6921bc5958ac5
@@ -788,17 +798,17 @@ __metadata:
linkType: hard
"node-abi@npm:^3.3.0":
- version: 3.54.0
- resolution: "node-abi@npm:3.54.0"
+ version: 3.58.0
+ resolution: "node-abi@npm:3.58.0"
dependencies:
semver: "npm:^7.3.5"
- checksum: 10c0/9ebbb21e6951aa51e831549ed62b68dc56bcc10f6b21ffd04195a16a6abf5ddfc48b6ae5e3334720fe4459cafde5ec8103025902efff5599d0539f8656fc694e
+ checksum: 10c0/1e46c48598852eef976fcf772ed83dd90dec06c2251f00bee341a235c494b3116d408810aae3c2fdbb8c228953310034fc0c66c0abdfe42b5d5df276e79f0ee2
languageName: node
linkType: hard
"node-gyp@npm:latest":
- version: 10.0.1
- resolution: "node-gyp@npm:10.0.1"
+ version: 10.1.0
+ resolution: "node-gyp@npm:10.1.0"
dependencies:
env-paths: "npm:^2.2.0"
exponential-backoff: "npm:^3.1.1"
@@ -812,7 +822,7 @@ __metadata:
which: "npm:^4.0.0"
bin:
node-gyp: bin/node-gyp.js
- checksum: 10c0/abddfff7d873312e4ed4a5fb75ce893a5c4fb69e7fcb1dfa71c28a6b92a7f1ef6b62790dffb39181b5a82728ba8f2f32d229cf8cbe66769fe02cea7db4a555aa
+ checksum: 10c0/9cc821111ca244a01fb7f054db7523ab0a0cd837f665267eb962eb87695d71fb1e681f9e21464cc2fd7c05530dc4c81b810bca1a88f7d7186909b74477491a3c
languageName: node
linkType: hard
@@ -828,11 +838,11 @@ __metadata:
linkType: hard
"npm-run-path@npm:^5.1.0":
- version: 5.2.0
- resolution: "npm-run-path@npm:5.2.0"
+ version: 5.3.0
+ resolution: "npm-run-path@npm:5.3.0"
dependencies:
path-key: "npm:^4.0.0"
- checksum: 10c0/7963c1f98e42afebe9524a08b0881477ec145aab34f6018842a315422b25ad40e015bdee709b697571e5efda2ecfa2640ee917d92674e4de1166fa3532a211b1
+ checksum: 10c0/124df74820c40c2eb9a8612a254ea1d557ddfab1581c3e751f825e3e366d9f00b0d76a3c94ecd8398e7f3eee193018622677e95816e8491f0797b21e30b2deba
languageName: node
linkType: hard
@@ -877,19 +887,19 @@ __metadata:
languageName: node
linkType: hard
-"path-scurry@npm:^1.10.1":
- version: 1.10.1
- resolution: "path-scurry@npm:1.10.1"
+"path-scurry@npm:^1.10.2":
+ version: 1.10.2
+ resolution: "path-scurry@npm:1.10.2"
dependencies:
- lru-cache: "npm:^9.1.1 || ^10.0.0"
+ lru-cache: "npm:^10.2.0"
minipass: "npm:^5.0.0 || ^6.0.2 || ^7.0.0"
- checksum: 10c0/e5dc78a7348d25eec61ab166317e9e9c7b46818aa2c2b9006c507a6ff48c672d011292d9662527213e558f5652ce0afcc788663a061d8b59ab495681840c0c1e
+ checksum: 10c0/d723777fbf9627f201e64656680f66ebd940957eebacf780e6cce1c2919c29c116678b2d7dbf8821b3a2caa758d125f4444005ccec886a25c8f324504e48e601
languageName: node
linkType: hard
"prebuild-install@npm:^7.1.1":
- version: 7.1.1
- resolution: "prebuild-install@npm:7.1.1"
+ version: 7.1.2
+ resolution: "prebuild-install@npm:7.1.2"
dependencies:
detect-libc: "npm:^2.0.0"
expand-template: "npm:^2.0.3"
@@ -905,7 +915,7 @@ __metadata:
tunnel-agent: "npm:^0.6.0"
bin:
prebuild-install: bin.js
- checksum: 10c0/6dc70f36b0f4adcb2fe0ed38d874ab28b571fb1a9725d769e8ba3f64a15831e58462de09f3e6e64569bcc4a3e03b9328b56faa0d45fe10ae1574478814536c76
+ checksum: 10c0/e64868ba9ef2068fd7264f5b03e5298a901e02a450acdb1f56258d88c09dea601eefdb3d1dfdff8513fdd230a92961712be0676192626a3b4d01ba154d48bdd3
languageName: node
linkType: hard
@@ -972,7 +982,7 @@ __metadata:
version: 0.0.0-use.local
resolution: "root-workspace-0b6124@workspace:."
dependencies:
- "@agoric/synthetic-chain": "npm:^0.0.7"
+ "@agoric/synthetic-chain": "npm:^0.0.10"
languageName: unknown
linkType: soft
@@ -991,13 +1001,13 @@ __metadata:
linkType: hard
"semver@npm:^7.3.5":
- version: 7.5.4
- resolution: "semver@npm:7.5.4"
+ version: 7.6.0
+ resolution: "semver@npm:7.6.0"
dependencies:
lru-cache: "npm:^6.0.0"
bin:
semver: bin/semver.js
- checksum: 10c0/5160b06975a38b11c1ab55950cb5b8a23db78df88275d3d8a42ccf1f29e55112ac995b3a26a522c36e3b5f76b0445f1eef70d696b8c7862a2b4303d7b0e7609e
+ checksum: 10c0/fbfe717094ace0aa8d6332d7ef5ce727259815bd8d8815700853f4faf23aacbd7192522f0dc5af6df52ef4fa85a355ebd2f5d39f554bd028200d6cf481ab9b53
languageName: node
linkType: hard
@@ -1049,24 +1059,31 @@ __metadata:
languageName: node
linkType: hard
-"socks-proxy-agent@npm:^8.0.1":
- version: 8.0.2
- resolution: "socks-proxy-agent@npm:8.0.2"
+"socks-proxy-agent@npm:^8.0.3":
+ version: 8.0.3
+ resolution: "socks-proxy-agent@npm:8.0.3"
dependencies:
- agent-base: "npm:^7.0.2"
+ agent-base: "npm:^7.1.1"
debug: "npm:^4.3.4"
socks: "npm:^2.7.1"
- checksum: 10c0/a842402fc9b8848a31367f2811ca3cd14c4106588b39a0901cd7a69029998adfc6456b0203617c18ed090542ad0c24ee4e9d4c75a0c4b75071e214227c177eb7
+ checksum: 10c0/4950529affd8ccd6951575e21c1b7be8531b24d924aa4df3ee32df506af34b618c4e50d261f4cc603f1bfd8d426915b7d629966c8ce45b05fb5ad8c8b9a6459d
languageName: node
linkType: hard
"socks@npm:^2.7.1":
- version: 2.7.1
- resolution: "socks@npm:2.7.1"
+ version: 2.8.3
+ resolution: "socks@npm:2.8.3"
dependencies:
- ip: "npm:^2.0.0"
+ ip-address: "npm:^9.0.5"
smart-buffer: "npm:^4.2.0"
- checksum: 10c0/43f69dbc9f34fc8220bc51c6eea1c39715ab3cfdb115d6e3285f6c7d1a603c5c75655668a5bbc11e3c7e2c99d60321fb8d7ab6f38cda6a215fadd0d6d0b52130
+ checksum: 10c0/d54a52bf9325165770b674a67241143a3d8b4e4c8884560c4e0e078aace2a728dffc7f70150660f51b85797c4e1a3b82f9b7aa25e0a0ceae1a243365da5c51a7
+ languageName: node
+ linkType: hard
+
+"sprintf-js@npm:^1.1.3":
+ version: 1.1.3
+ resolution: "sprintf-js@npm:1.1.3"
+ checksum: 10c0/09270dc4f30d479e666aee820eacd9e464215cdff53848b443964202bf4051490538e5dd1b42e1a65cf7296916ca17640aebf63dae9812749c7542ee5f288dec
languageName: node
linkType: hard
@@ -1168,8 +1185,8 @@ __metadata:
linkType: hard
"tar@npm:^6.1.11, tar@npm:^6.1.2":
- version: 6.2.0
- resolution: "tar@npm:6.2.0"
+ version: 6.2.1
+ resolution: "tar@npm:6.2.1"
dependencies:
chownr: "npm:^2.0.0"
fs-minipass: "npm:^2.0.0"
@@ -1177,7 +1194,7 @@ __metadata:
minizlib: "npm:^2.1.1"
mkdirp: "npm:^1.0.3"
yallist: "npm:^4.0.0"
- checksum: 10c0/02ca064a1a6b4521fef88c07d389ac0936730091f8c02d30ea60d472e0378768e870769ab9e986d87807bfee5654359cf29ff4372746cc65e30cbddc352660d8
+ checksum: 10c0/a5eca3eb50bc11552d453488344e6507156b9193efd7635e98e867fab275d527af53d8866e2370cd09dfe74378a18111622ace35af6a608e5223a7d27fe99537
languageName: node
linkType: hard
diff --git a/golang/cosmos/CHANGELOG.md b/golang/cosmos/CHANGELOG.md
index c0b946e75a3..2d7379be865 100644
--- a/golang/cosmos/CHANGELOG.md
+++ b/golang/cosmos/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.35.0-u15.0](https://github.com/Agoric/agoric-sdk/compare/@agoric/cosmos@0.35.0-u14.1...@agoric/cosmos@0.35.0-u15.0) (2024-04-20)
+
+
+### Features
+
+* upgrade zcf: install bundle and call updateZcfBundleId() ([74662d7](https://github.com/Agoric/agoric-sdk/commit/74662d73c0c213cbb537d7ff20e24fc31f35656d)), closes [#9250](https://github.com/Agoric/agoric-sdk/issues/9250)
+* **cosmos:** Next upgrade is `agoric-upgrade-15` ([6a84bb1](https://github.com/Agoric/agoric-sdk/commit/6a84bb15b436a9f1f1556604028d029ef2190a8d))
+
+
+### Bug Fixes
+
+* various fixes and features for u15 ([21e6f7c](https://github.com/Agoric/agoric-sdk/commit/21e6f7c7c36250d1cc270d97fada5590e8ae3a7f))
+
+
+
## [0.35.0-u14.1](https://github.com/gibson042/agoric-sdk/compare/@agoric/cosmos@0.35.0-u14.0...@agoric/cosmos@0.35.0-u14.1) (2024-03-12)
diff --git a/golang/cosmos/app/app.go b/golang/cosmos/app/app.go
index 45120af0f2f..f7f5bcd10f6 100644
--- a/golang/cosmos/app/app.go
+++ b/golang/cosmos/app/app.go
@@ -791,7 +791,7 @@ func NewAgoricApp(
for name := range upgradeNamesOfThisVersion {
app.UpgradeKeeper.SetUpgradeHandler(
name,
- upgrade14Handler(app, name),
+ upgrade15Handler(app, name),
)
}
@@ -831,9 +831,8 @@ func NewAgoricApp(
}
var upgradeNamesOfThisVersion = map[string]bool{
- "agoric-upgrade-14": true,
- "agorictest-upgrade-14": true,
- "agorictest-upgrade-14-2": true,
+ "agoric-upgrade-15": true,
+ "agorictest-upgrade-15": true,
}
func isFirstTimeUpgradeOfThisVersion(app *GaiaApp, ctx sdk.Context) bool {
@@ -845,25 +844,23 @@ func isFirstTimeUpgradeOfThisVersion(app *GaiaApp, ctx sdk.Context) bool {
return true
}
-// upgrade14Handler performs standard upgrade actions plus custom actions for upgrade-14.
-func upgrade14Handler(app *GaiaApp, targetUpgrade string) func(sdk.Context, upgradetypes.Plan, module.VersionMap) (module.VersionMap, error) {
+// upgrade15Handler performs standard upgrade actions plus custom actions for upgrade-15.
+func upgrade15Handler(app *GaiaApp, targetUpgrade string) func(sdk.Context, upgradetypes.Plan, module.VersionMap) (module.VersionMap, error) {
return func(ctx sdk.Context, plan upgradetypes.Plan, fromVm module.VersionMap) (module.VersionMap, error) {
app.CheckControllerInited(false)
CoreProposalSteps := []vm.CoreProposalStep{}
// These CoreProposalSteps are not idempotent and should only be executed
- // as part of the first upgrade-14 on any given chain.
+ // as part of the first upgrade using this handler on any given chain.
if isFirstTimeUpgradeOfThisVersion(app, ctx) {
// Each CoreProposalStep runs sequentially, and can be constructed from
// one or more modules executing in parallel within the step.
CoreProposalSteps = []vm.CoreProposalStep{
- // First, upgrade wallet factory
+ // Upgrade ZCF only
+ vm.CoreProposalStepForModules("@agoric/vats/scripts/upgrade-zcf.js"),
+ // Upgrade walletFactory
vm.CoreProposalStepForModules("@agoric/vats/scripts/build-wallet-factory2-upgrade.js"),
- // Then, upgrade Zoe and ZCF
- vm.CoreProposalStepForModules("@agoric/vats/scripts/replace-zoe.js"),
- // Next revive KREAd characters
- vm.CoreProposalStepForModules("@agoric/vats/scripts/revive-kread.js"),
}
}
diff --git a/golang/cosmos/go.mod b/golang/cosmos/go.mod
index c4c2202e6af..ba298723970 100644
--- a/golang/cosmos/go.mod
+++ b/golang/cosmos/go.mod
@@ -168,9 +168,6 @@ replace (
github.com/confio/ics23/go => github.com/agoric-labs/cosmos-sdk/ics23/go v0.8.0-alpha.agoric.1
- // We need a fork of cosmos-sdk until all of the differences are merged.
- github.com/cosmos/cosmos-sdk => github.com/agoric-labs/cosmos-sdk v0.46.16-alpha.agoric.2.1
-
// https://pkg.go.dev/vuln/GO-2023-2409
github.com/dvsekhvalnov/jose2go => github.com/dvsekhvalnov/jose2go v1.5.1-0.20231206184617-48ba0b76bc88
@@ -184,13 +181,22 @@ replace (
// replace broken goleveldb.
github.com/syndtr/goleveldb => github.com/syndtr/goleveldb v1.0.1-0.20210819022825-2ae1ddf74ef7
+)
+
+// Agoric-specific replacements:
+replace (
+ // We need a fork of cosmos-sdk until all of the differences are merged.
+ github.com/cosmos/cosmos-sdk => github.com/agoric-labs/cosmos-sdk v0.46.16-alpha.agoric.2.4
+
+ // Pick up an IAVL race fix.
+ github.com/cosmos/iavl => github.com/cosmos/iavl v0.19.7
// use cometbft
// Use our fork at least until post-v0.34.14 is released with
// https://github.com/tendermint/tendermint/issue/6899 resolved.
github.com/tendermint/tendermint => github.com/agoric-labs/cometbft v0.34.30-alpha.agoric.1
-// For testing against a local cosmos-sdk or tendermint
+// For testing against a local cosmos-sdk or cometbft
// github.com/cosmos/cosmos-sdk => ../../../forks/cosmos-sdk
-// github.com/tendermint/tendermint => ../../../forks/tendermint
+// github.com/tendermint/tendermint => ../../../forks/cometbft
)
diff --git a/golang/cosmos/go.sum b/golang/cosmos/go.sum
index b6bd9a041c2..cf221461ca1 100644
--- a/golang/cosmos/go.sum
+++ b/golang/cosmos/go.sum
@@ -232,8 +232,8 @@ github.com/aead/siphash v1.0.1/go.mod h1:Nywa3cDsYNNK3gaciGTWPwHt0wlpNV15vwmswBA
github.com/afex/hystrix-go v0.0.0-20180502004556-fa1af6a1f4f5/go.mod h1:SkGFH1ia65gfNATL8TAiHDNxPzPdmEL5uirI2Uyuz6c=
github.com/agoric-labs/cometbft v0.34.30-alpha.agoric.1 h1:tqCNL72pQXdUmBzgv1md5SN2U3K/PaYQ4qZ5pFv8v6w=
github.com/agoric-labs/cometbft v0.34.30-alpha.agoric.1/go.mod h1:myvkihZD8eg9jKE3WFaugkNoL5nvEqlP7Jbjg98pCek=
-github.com/agoric-labs/cosmos-sdk v0.46.16-alpha.agoric.2.1 h1:VZFX9Mogwt4cVTnkdt9zA6UJue4XYXdBURNhlTWw71Q=
-github.com/agoric-labs/cosmos-sdk v0.46.16-alpha.agoric.2.1/go.mod h1:zUe5lsg/X7SeSO1nGkzOh9EGKO295szfrxIxYmeLYic=
+github.com/agoric-labs/cosmos-sdk v0.46.16-alpha.agoric.2.4 h1:i5IgChQjTyWulV/y5NpVBB5qBJETQ59hYglod6vhok0=
+github.com/agoric-labs/cosmos-sdk v0.46.16-alpha.agoric.2.4/go.mod h1:d7e4h+w7FNBNmE6ysp6duBVuQg67pqMtvsLwpT9ca3E=
github.com/agoric-labs/cosmos-sdk/ics23/go v0.8.0-alpha.agoric.1 h1:2jvHI/2d+psWAZy6FQ0vXJCHUtfU3ZbbW+pQFL04arQ=
github.com/agoric-labs/cosmos-sdk/ics23/go v0.8.0-alpha.agoric.1/go.mod h1:E45NqnlpxGnpfTWL/xauN7MRwEE28T4Dd4uraToOaKg=
github.com/ajstarks/svgo v0.0.0-20180226025133-644b8db467af/go.mod h1:K08gAheRH3/J6wwsYMMT4xOr94bZjxIelGM0+d/wbFw=
@@ -376,8 +376,8 @@ github.com/cosmos/go-bip39 v1.0.0 h1:pcomnQdrdH22njcAatO0yWojsUnCO3y2tNoV1cb6hHY
github.com/cosmos/go-bip39 v1.0.0/go.mod h1:RNJv0H/pOIVgxw6KS7QeX2a0Uo0aKUlfhZ4xuwvCdJw=
github.com/cosmos/gorocksdb v1.2.0 h1:d0l3jJG8M4hBouIZq0mDUHZ+zjOx044J3nGRskwTb4Y=
github.com/cosmos/gorocksdb v1.2.0/go.mod h1:aaKvKItm514hKfNJpUJXnnOWeBnk2GL4+Qw9NHizILw=
-github.com/cosmos/iavl v0.19.6 h1:XY78yEeNPrEYyNCKlqr9chrwoeSDJ0bV2VjocTk//OU=
-github.com/cosmos/iavl v0.19.6/go.mod h1:X9PKD3J0iFxdmgNLa7b2LYWdsGd90ToV5cAONApkEPw=
+github.com/cosmos/iavl v0.19.7 h1:ij32FaEnwxfEurtK0QKDNhTWFnz6NUmrI5gky/WnoY0=
+github.com/cosmos/iavl v0.19.7/go.mod h1:X9PKD3J0iFxdmgNLa7b2LYWdsGd90ToV5cAONApkEPw=
github.com/cosmos/ibc-go/v6 v6.2.1 h1:NiaDXTRhKwf3n9kELD4VRIe5zby1yk1jBvaz9tXTQ6k=
github.com/cosmos/ibc-go/v6 v6.2.1/go.mod h1:XLsARy4Y7+GtAqzMcxNdlQf6lx+ti1e8KcMGv5NIK7A=
github.com/cosmos/keyring v1.2.0 h1:8C1lBP9xhImmIabyXW4c3vFjjLiBdGCmfLUfeZlV1Yo=
diff --git a/golang/cosmos/package.json b/golang/cosmos/package.json
index 064da8686c5..1fe4b3478a9 100644
--- a/golang/cosmos/package.json
+++ b/golang/cosmos/package.json
@@ -1,6 +1,6 @@
{
"name": "@agoric/cosmos",
- "version": "0.35.0-u14.1",
+ "version": "0.35.0-u15.0",
"description": "Connect JS to the Cosmos blockchain SDK",
"parsers": {
"js": "mjs"
diff --git a/packages/agoric-cli/CHANGELOG.md b/packages/agoric-cli/CHANGELOG.md
index 5a49edc3760..390cf96db0e 100644
--- a/packages/agoric-cli/CHANGELOG.md
+++ b/packages/agoric-cli/CHANGELOG.md
@@ -3,6 +3,14 @@
All notable changes to this project will be documented in this file.
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
+## [0.22.0-u15.0](https://github.com/Agoric/agoric-sdk/compare/agoric@0.22.0-u14.1...agoric@0.22.0-u15.0) (2024-04-20)
+
+**Note:** Version bump only for package agoric
+
+
+
+
+
## [0.22.0-u14.1](https://github.com/Agoric/agoric-sdk/compare/agoric@0.22.0-u14.0...agoric@0.22.0-u14.1) (2024-03-12)
**Note:** Version bump only for package agoric
diff --git a/packages/agoric-cli/package.json b/packages/agoric-cli/package.json
index e61988dc33d..1c51bbfa7ab 100644
--- a/packages/agoric-cli/package.json
+++ b/packages/agoric-cli/package.json
@@ -1,6 +1,6 @@
{
"name": "agoric",
- "version": "0.22.0-u14.1",
+ "version": "0.22.0-u15.0",
"description": "Manage the Agoric Javascript smart contract platform",
"type": "module",
"main": "src/main.js",
@@ -29,7 +29,7 @@
"lint:eslint": "eslint ."
},
"devDependencies": {
- "@agoric/deploy-script-support": "^0.10.4-u14.1",
+ "@agoric/deploy-script-support": "^0.10.4-u15.0",
"ava": "^5.2.0",
"c8": "^7.13.0",
"dd-trace": "^3.3.0"
@@ -37,17 +37,17 @@
"dependencies": {
"@agoric/access-token": "^0.4.22-u11wf.0",
"@agoric/assert": "^0.6.1-u11wf.0",
- "@agoric/cache": "^0.3.3-u14.0",
+ "@agoric/cache": "^0.3.3-u15.0",
"@agoric/casting": "^0.4.3-u14.0",
"@agoric/cosmic-proto": "^0.3.1-u14.0",
"@agoric/ertp": "^0.16.3-u14.0",
- "@agoric/inter-protocol": "^0.16.2-u14.1",
+ "@agoric/inter-protocol": "^0.16.2-u15.0",
"@agoric/internal": "^0.4.0-u14.0",
- "@agoric/smart-wallet": "^0.5.4-u14.1",
+ "@agoric/smart-wallet": "^0.5.4-u15.0",
"@agoric/store": "^0.9.3-u14.0",
"@agoric/swingset-vat": "^0.32.3-u14.0",
- "@agoric/vats": "^0.15.2-u14.1",
- "@agoric/zoe": "^0.26.3-u14.0",
+ "@agoric/vats": "^0.15.2-u15.0",
+ "@agoric/zoe": "^0.26.3-u15.0",
"@agoric/zone": "^0.2.3-u14.0",
"@confio/relayer": "^0.9.0",
"@cosmjs/crypto": "^0.30.1",
diff --git a/packages/cache/CHANGELOG.md b/packages/cache/CHANGELOG.md
index 33850143e7e..bb5bfc210f5 100644
--- a/packages/cache/CHANGELOG.md
+++ b/packages/cache/CHANGELOG.md
@@ -3,6 +3,14 @@
All notable changes to this project will be documented in this file.
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
+### [0.3.3-u15.0](https://github.com/Agoric/agoric-sdk/compare/@agoric/cache@0.3.3-u14.0...@agoric/cache@0.3.3-u15.0) (2024-04-20)
+
+**Note:** Version bump only for package @agoric/cache
+
+
+
+
+
### [0.3.3-u14.0](https://github.com/Agoric/agoric-sdk/compare/@agoric/cache@0.3.3-u13.0...@agoric/cache@0.3.3-u14.0) (2024-02-27)
**Note:** Version bump only for package @agoric/cache
diff --git a/packages/cache/package.json b/packages/cache/package.json
index bf7f7f1a828..ef4e74cce1e 100644
--- a/packages/cache/package.json
+++ b/packages/cache/package.json
@@ -1,6 +1,6 @@
{
"name": "@agoric/cache",
- "version": "0.3.3-u14.0",
+ "version": "0.3.3-u15.0",
"description": "Agoric's simple cache interface",
"type": "module",
"main": "src/main.js",
@@ -27,7 +27,7 @@
"@endo/marshal": "0.8.5"
},
"devDependencies": {
- "@agoric/zoe": "^0.26.3-u14.0",
+ "@agoric/zoe": "^0.26.3-u15.0",
"ava": "^5.2.0",
"c8": "^7.13.0"
},
diff --git a/packages/cosmic-swingset/CHANGELOG.md b/packages/cosmic-swingset/CHANGELOG.md
index 3e58a8d9dea..b5e7b453c06 100644
--- a/packages/cosmic-swingset/CHANGELOG.md
+++ b/packages/cosmic-swingset/CHANGELOG.md
@@ -3,6 +3,14 @@
All notable changes to this project will be documented in this file.
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
+## [0.42.0-u15.0](https://github.com/Agoric/agoric-sdk/compare/@agoric/cosmic-swingset@0.42.0-u14.1...@agoric/cosmic-swingset@0.42.0-u15.0) (2024-04-20)
+
+**Note:** Version bump only for package @agoric/cosmic-swingset
+
+
+
+
+
## [0.42.0-u14.1](https://github.com/Agoric/agoric-sdk/compare/@agoric/cosmic-swingset@0.42.0-u14.0...@agoric/cosmic-swingset@0.42.0-u14.1) (2024-03-12)
**Note:** Version bump only for package @agoric/cosmic-swingset
diff --git a/packages/cosmic-swingset/package.json b/packages/cosmic-swingset/package.json
index 27b5973ab42..304b2cf0d91 100644
--- a/packages/cosmic-swingset/package.json
+++ b/packages/cosmic-swingset/package.json
@@ -1,6 +1,6 @@
{
"name": "@agoric/cosmic-swingset",
- "version": "0.42.0-u14.1",
+ "version": "0.42.0-u15.0",
"description": "Agoric's Cosmos blockchain integration",
"type": "module",
"bin": {
@@ -23,8 +23,8 @@
"license": "Apache-2.0",
"dependencies": {
"@agoric/assert": "^0.6.1-u11wf.0",
- "@agoric/cosmos": "^0.35.0-u14.1",
- "@agoric/deploy-script-support": "^0.10.4-u14.1",
+ "@agoric/cosmos": "^0.35.0-u15.0",
+ "@agoric/deploy-script-support": "^0.10.4-u15.0",
"@agoric/internal": "^0.4.0-u14.0",
"@agoric/store": "^0.9.3-u14.0",
"@agoric/swing-store": "^0.9.2-u14.0",
diff --git a/packages/create-dapp/CHANGELOG.md b/packages/create-dapp/CHANGELOG.md
index 15e5872d149..9e87e40da07 100644
--- a/packages/create-dapp/CHANGELOG.md
+++ b/packages/create-dapp/CHANGELOG.md
@@ -3,6 +3,14 @@
All notable changes to this project will be documented in this file.
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
+### [0.1.1-u15.0](https://github.com/Agoric/agoric-sdk/compare/@agoric/create-dapp@0.1.1-u14.1...@agoric/create-dapp@0.1.1-u15.0) (2024-04-20)
+
+**Note:** Version bump only for package @agoric/create-dapp
+
+
+
+
+
### [0.1.1-u14.1](https://github.com/Agoric/agoric-sdk/compare/@agoric/create-dapp@0.1.1-u14.0...@agoric/create-dapp@0.1.1-u14.1) (2024-03-12)
**Note:** Version bump only for package @agoric/create-dapp
diff --git a/packages/create-dapp/package.json b/packages/create-dapp/package.json
index 3781982c4a3..e463688054f 100644
--- a/packages/create-dapp/package.json
+++ b/packages/create-dapp/package.json
@@ -1,6 +1,6 @@
{
"name": "@agoric/create-dapp",
- "version": "0.1.1-u14.1",
+ "version": "0.1.1-u15.0",
"description": "Create an Agoric Javascript smart contract application",
"type": "module",
"bin": {
@@ -24,7 +24,7 @@
"c8": "^7.13.0"
},
"dependencies": {
- "agoric": "^0.22.0-u14.1"
+ "agoric": "^0.22.0-u15.0"
},
"keywords": [],
"repository": {
diff --git a/packages/deploy-script-support/CHANGELOG.md b/packages/deploy-script-support/CHANGELOG.md
index 96de6343c39..55e5150e8b7 100644
--- a/packages/deploy-script-support/CHANGELOG.md
+++ b/packages/deploy-script-support/CHANGELOG.md
@@ -3,6 +3,14 @@
All notable changes to this project will be documented in this file.
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
+### [0.10.4-u15.0](https://github.com/Agoric/agoric-sdk/compare/@agoric/deploy-script-support@0.10.4-u14.1...@agoric/deploy-script-support@0.10.4-u15.0) (2024-04-20)
+
+**Note:** Version bump only for package @agoric/deploy-script-support
+
+
+
+
+
### [0.10.4-u14.1](https://github.com/Agoric/agoric-sdk/compare/@agoric/deploy-script-support@0.10.4-u14.0...@agoric/deploy-script-support@0.10.4-u14.1) (2024-03-12)
**Note:** Version bump only for package @agoric/deploy-script-support
diff --git a/packages/deploy-script-support/package.json b/packages/deploy-script-support/package.json
index 1021d684e0b..fc0bd0fdda5 100644
--- a/packages/deploy-script-support/package.json
+++ b/packages/deploy-script-support/package.json
@@ -1,6 +1,6 @@
{
"name": "@agoric/deploy-script-support",
- "version": "0.10.4-u14.1",
+ "version": "0.10.4-u15.0",
"description": "Helpers and other support for writing deploy scripts",
"type": "module",
"main": "src/helpers.js",
@@ -40,7 +40,7 @@
"@agoric/internal": "^0.4.0-u14.0",
"@agoric/notifier": "^0.6.3-u14.0",
"@agoric/store": "^0.9.3-u14.0",
- "@agoric/zoe": "^0.26.3-u14.0",
+ "@agoric/zoe": "^0.26.3-u15.0",
"@endo/base64": "0.2.31",
"@endo/bundle-source": "2.5.2-upstream-rollup",
"@endo/far": "0.2.18",
@@ -50,7 +50,7 @@
"@endo/zip": "0.2.31"
},
"devDependencies": {
- "@agoric/vats": "^0.15.2-u14.1",
+ "@agoric/vats": "^0.15.2-u15.0",
"@endo/init": "0.5.56",
"ava": "^5.2.0",
"import-meta-resolve": "^2.2.1"
diff --git a/packages/governance/CHANGELOG.md b/packages/governance/CHANGELOG.md
index de1ba8b48f9..62e5588ae47 100644
--- a/packages/governance/CHANGELOG.md
+++ b/packages/governance/CHANGELOG.md
@@ -3,6 +3,14 @@
All notable changes to this project will be documented in this file.
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
+### [0.10.4-u15.0](https://github.com/Agoric/agoric-sdk/compare/@agoric/governance@0.10.4-u14.1...@agoric/governance@0.10.4-u15.0) (2024-04-20)
+
+**Note:** Version bump only for package @agoric/governance
+
+
+
+
+
### [0.10.4-u14.1](https://github.com/Agoric/agoric-sdk/compare/@agoric/governance@0.10.4-u14.0...@agoric/governance@0.10.4-u14.1) (2024-03-12)
**Note:** Version bump only for package @agoric/governance
diff --git a/packages/governance/package.json b/packages/governance/package.json
index f0016eaa0c3..bc6690b5dc9 100644
--- a/packages/governance/package.json
+++ b/packages/governance/package.json
@@ -1,6 +1,6 @@
{
"name": "@agoric/governance",
- "version": "0.10.4-u14.1",
+ "version": "0.10.4-u15.0",
"description": "Core governance support",
"type": "module",
"main": "src/index.js",
@@ -39,8 +39,8 @@
"@agoric/swingset-vat": "^0.32.3-u14.0",
"@agoric/time": "^0.3.3-u14.0",
"@agoric/vat-data": "^0.5.3-u14.0",
- "@agoric/vats": "^0.15.2-u14.1",
- "@agoric/zoe": "^0.26.3-u14.0",
+ "@agoric/vats": "^0.15.2-u15.0",
+ "@agoric/zoe": "^0.26.3-u15.0",
"@endo/captp": "3.1.1",
"@endo/eventual-send": "0.17.2",
"@endo/far": "0.2.18",
@@ -49,7 +49,7 @@
"@endo/promise-kit": "0.2.56"
},
"devDependencies": {
- "@agoric/deploy-script-support": "^0.10.4-u14.1",
+ "@agoric/deploy-script-support": "^0.10.4-u15.0",
"@endo/bundle-source": "2.5.2-upstream-rollup",
"@endo/init": "0.5.56",
"ava": "^5.2.0",
diff --git a/packages/inter-protocol/CHANGELOG.md b/packages/inter-protocol/CHANGELOG.md
index ef14973ce86..200534ab616 100644
--- a/packages/inter-protocol/CHANGELOG.md
+++ b/packages/inter-protocol/CHANGELOG.md
@@ -3,6 +3,14 @@
All notable changes to this project will be documented in this file.
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
+### [0.16.2-u15.0](https://github.com/Agoric/agoric-sdk/compare/@agoric/inter-protocol@0.16.2-u14.1...@agoric/inter-protocol@0.16.2-u15.0) (2024-04-20)
+
+**Note:** Version bump only for package @agoric/inter-protocol
+
+
+
+
+
### [0.16.2-u14.1](https://github.com/Agoric/agoric-sdk/compare/@agoric/inter-protocol@0.16.2-u14.0...@agoric/inter-protocol@0.16.2-u14.1) (2024-03-12)
**Note:** Version bump only for package @agoric/inter-protocol
diff --git a/packages/inter-protocol/package.json b/packages/inter-protocol/package.json
index 24fa776a064..b869a07f4c9 100644
--- a/packages/inter-protocol/package.json
+++ b/packages/inter-protocol/package.json
@@ -1,6 +1,6 @@
{
"name": "@agoric/inter-protocol",
- "version": "0.16.2-u14.1",
+ "version": "0.16.2-u15.0",
"description": "Core cryptoeconomy contracts",
"type": "module",
"main": "src/index.js",
@@ -31,14 +31,14 @@
"dependencies": {
"@agoric/assert": "^0.6.1-u11wf.0",
"@agoric/ertp": "^0.16.3-u14.0",
- "@agoric/governance": "^0.10.4-u14.1",
+ "@agoric/governance": "^0.10.4-u15.0",
"@agoric/internal": "^0.4.0-u14.0",
"@agoric/notifier": "^0.6.3-u14.0",
"@agoric/store": "^0.9.3-u14.0",
"@agoric/time": "^0.3.3-u14.0",
"@agoric/vat-data": "^0.5.3-u14.0",
- "@agoric/vats": "^0.15.2-u14.1",
- "@agoric/zoe": "^0.26.3-u14.0",
+ "@agoric/vats": "^0.15.2-u15.0",
+ "@agoric/zoe": "^0.26.3-u15.0",
"@endo/captp": "3.1.1",
"@endo/eventual-send": "0.17.2",
"@endo/far": "0.2.18",
@@ -47,8 +47,8 @@
"jessie.js": "^0.3.2"
},
"devDependencies": {
- "@agoric/deploy-script-support": "^0.10.4-u14.1",
- "@agoric/smart-wallet": "^0.5.4-u14.1",
+ "@agoric/deploy-script-support": "^0.10.4-u15.0",
+ "@agoric/smart-wallet": "^0.5.4-u15.0",
"@agoric/swingset-liveslots": "^0.10.3-u14.0",
"@agoric/swingset-vat": "^0.32.3-u14.0",
"@endo/bundle-source": "2.5.2-upstream-rollup",
diff --git a/packages/pegasus/CHANGELOG.md b/packages/pegasus/CHANGELOG.md
index 060abf457ce..4cc0f035ef7 100644
--- a/packages/pegasus/CHANGELOG.md
+++ b/packages/pegasus/CHANGELOG.md
@@ -3,6 +3,14 @@
All notable changes to this project will be documented in this file.
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
+### [0.7.13-u15.0](https://github.com/Agoric/agoric-sdk/compare/@agoric/pegasus@0.7.13-u14.1...@agoric/pegasus@0.7.13-u15.0) (2024-04-20)
+
+**Note:** Version bump only for package @agoric/pegasus
+
+
+
+
+
### [0.7.13-u14.1](https://github.com/Agoric/agoric-sdk/compare/@agoric/pegasus@0.7.13-u14.0...@agoric/pegasus@0.7.13-u14.1) (2024-03-12)
**Note:** Version bump only for package @agoric/pegasus
diff --git a/packages/pegasus/package.json b/packages/pegasus/package.json
index 674439ce2a8..bb069f26f10 100644
--- a/packages/pegasus/package.json
+++ b/packages/pegasus/package.json
@@ -1,6 +1,6 @@
{
"name": "@agoric/pegasus",
- "version": "0.7.13-u14.1",
+ "version": "0.7.13-u15.0",
"description": "Peg-as-us contract",
"type": "module",
"main": "./src/pegasus.js",
@@ -35,8 +35,8 @@
"@agoric/notifier": "^0.6.3-u14.0",
"@agoric/store": "^0.9.3-u14.0",
"@agoric/swingset-vat": "^0.32.3-u14.0",
- "@agoric/vats": "^0.15.2-u14.1",
- "@agoric/zoe": "^0.26.3-u14.0",
+ "@agoric/vats": "^0.15.2-u15.0",
+ "@agoric/zoe": "^0.26.3-u15.0",
"@endo/bundle-source": "2.5.2-upstream-rollup",
"@endo/captp": "3.1.1",
"@endo/far": "0.2.18",
@@ -45,7 +45,7 @@
"@endo/promise-kit": "0.2.56"
},
"devDependencies": {
- "@agoric/deploy-script-support": "^0.10.4-u14.1",
+ "@agoric/deploy-script-support": "^0.10.4-u15.0",
"ava": "^5.2.0",
"c8": "^7.13.0",
"import-meta-resolve": "^2.2.1"
diff --git a/packages/smart-wallet/CHANGELOG.md b/packages/smart-wallet/CHANGELOG.md
index 03acdb8120a..8e60e3a9020 100644
--- a/packages/smart-wallet/CHANGELOG.md
+++ b/packages/smart-wallet/CHANGELOG.md
@@ -3,6 +3,20 @@
All notable changes to this project will be documented in this file.
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
+### [0.5.4-u15.0](https://github.com/Agoric/agoric/compare/@agoric/smart-wallet@0.5.4-u14.1...@agoric/smart-wallet@0.5.4-u15.0) (2024-04-20)
+
+
+### Features
+
+* **smart-wallet:** tryExitOffer reclaims withdrawn payments ([6f01f63](https://github.com/Agoric/agoric/commit/6f01f633be6ac3b43f965c704f8116405896c993))
+
+
+### Bug Fixes
+
+* in SmartWallet, if invitation is invalid, don't process offer ([29078f7](https://github.com/Agoric/agoric/commit/29078f75f59ae5a5b47b463f9a65f9a5d4d69a8e))
+
+
+
### [0.5.4-u14.1](https://github.com/Agoric/agoric/compare/@agoric/smart-wallet@0.5.4-u14.0...@agoric/smart-wallet@0.5.4-u14.1) (2024-03-12)
**Note:** Version bump only for package @agoric/smart-wallet
diff --git a/packages/smart-wallet/package.json b/packages/smart-wallet/package.json
index d5ae049ec80..952ab6a1e65 100644
--- a/packages/smart-wallet/package.json
+++ b/packages/smart-wallet/package.json
@@ -1,6 +1,6 @@
{
"name": "@agoric/smart-wallet",
- "version": "0.5.4-u14.1",
+ "version": "0.5.4-u15.0",
"description": "Wallet contract",
"type": "module",
"scripts": {
@@ -18,6 +18,7 @@
"devDependencies": {
"@agoric/cosmic-proto": "^0.3.1-u14.0",
"@agoric/vats": "^0.15.2-u13.0",
+ "@agoric/zone": "^0.2.3-u14.0",
"@endo/bundle-source": "2.5.2-upstream-rollup",
"@endo/captp": "3.1.1",
"@endo/init": "0.5.56",
@@ -27,15 +28,15 @@
"dependencies": {
"@agoric/assert": "^0.6.1-u11wf.0",
"@agoric/casting": "^0.4.3-u14.0",
- "@agoric/deploy-script-support": "^0.10.4-u14.1",
+ "@agoric/deploy-script-support": "^0.10.4-u15.0",
"@agoric/ertp": "^0.16.3-u14.0",
"@agoric/internal": "^0.4.0-u14.0",
"@agoric/notifier": "^0.6.3-u14.0",
"@agoric/store": "^0.9.3-u14.0",
"@agoric/swingset-vat": "^0.32.3-u14.0",
"@agoric/vat-data": "^0.5.3-u14.0",
- "@agoric/vats": "^0.15.2-u14.1",
- "@agoric/zoe": "^0.26.3-u14.0",
+ "@agoric/vats": "^0.15.2-u15.0",
+ "@agoric/zoe": "^0.26.3-u15.0",
"@endo/eventual-send": "0.17.2",
"@endo/far": "0.2.18",
"@endo/marshal": "0.8.5",
diff --git a/packages/smart-wallet/src/smartWallet.js b/packages/smart-wallet/src/smartWallet.js
index d1b1323dfb7..60725648cad 100644
--- a/packages/smart-wallet/src/smartWallet.js
+++ b/packages/smart-wallet/src/smartWallet.js
@@ -902,7 +902,7 @@ export const prepareSmartWallet = (baggage, shared) => {
* Find the live payments for the offer and deposit them back in the appropriate purses.
*
* @param {OfferId} offerId
- * @returns {Promise}
+ * @returns {Promise}
*/
async tryReclaimingWithdrawnPayments(offerId) {
const { facets } = this;
@@ -913,8 +913,9 @@ export const prepareSmartWallet = (baggage, shared) => {
if (liveOfferPayments.has(offerId)) {
const brandPaymentRecord = liveOfferPayments.get(offerId);
if (!brandPaymentRecord) {
- return;
+ return [];
}
+ const out = [];
// Use allSettled to ensure we attempt all the deposits, regardless of
// individual rejections.
await Promise.allSettled(
@@ -924,10 +925,16 @@ export const prepareSmartWallet = (baggage, shared) => {
const purseP = facets.helper.purseForBrand(b);
// Now send it back to the purse.
- return E(purseP).deposit(p);
+ return E(purseP)
+ .deposit(p)
+ .then(amt => {
+ out.push(amt);
+ });
}),
);
+ return harden(out);
}
+ return [];
},
},
@@ -967,23 +974,24 @@ export const prepareSmartWallet = (baggage, shared) => {
const invitation = invitationFromSpec(offerSpec.invitationSpec);
- const [paymentKeywordRecord, invitationAmount] = await Promise.all([
- proposal?.give &&
- deeplyFulfilledObject(
- facets.payments.withdrawGive(proposal.give, offerSpec.id),
- ),
- E(invitationIssuer).getAmountOf(invitation),
- ]);
+ // prettier-ignore
+ const invitationAmount =
+ await E(invitationIssuer).getAmountOf(invitation);
// 2. Begin executing offer
// No explicit signal to user that we reached here but if anything above
// failed they'd get an 'error' status update.
- /** @type {UserSeat} */
+ const withdrawnPayments =
+ proposal?.give &&
+ (await deeplyFulfilledObject(
+ facets.payments.withdrawGive(proposal.give, offerSpec.id),
+ ));
+
seatRef = await E(zoe).offer(
invitation,
proposal,
- paymentKeywordRecord,
+ withdrawnPayments,
offerSpec.offerArgs,
);
facets.helper.logWalletInfo(offerSpec.id, 'seated');
@@ -1047,6 +1055,19 @@ export const prepareSmartWallet = (baggage, shared) => {
* @throws if the seat can't be found or E(seatRef).tryExit() fails.
*/
async tryExitOffer(offerId) {
+ const { facets } = this;
+ const amts = await facets.payments
+ .tryReclaimingWithdrawnPayments(offerId)
+ .catch(e => {
+ facets.helper.logWalletError(
+ 'recovery failed reclaiming payments',
+ e,
+ );
+ return [];
+ });
+ if (amts.length > 0) {
+ facets.helper.logWalletInfo('reclaimed', amts, 'from', offerId);
+ }
const seatRef = this.state.liveOfferSeats.get(offerId);
await E(seatRef).tryExit();
},
diff --git a/packages/smart-wallet/test/test-invitation1.js b/packages/smart-wallet/test/test-invitation1.js
new file mode 100644
index 00000000000..93808a1154a
--- /dev/null
+++ b/packages/smart-wallet/test/test-invitation1.js
@@ -0,0 +1,251 @@
+// @ts-check
+/* global setTimeout */
+import { test as anyTest } from '@agoric/zoe/tools/prepare-test-env-ava.js';
+import { createRequire } from 'module';
+import { E, Far } from '@endo/far';
+import { makeScalarMapStore } from '@agoric/store';
+import { makeDurableZone } from '@agoric/zone/durable.js';
+import { makeNameHubKit, makePromiseSpace } from '@agoric/vats';
+import { makeFakeVatAdmin } from '@agoric/zoe/tools/fakeVatAdmin.js';
+import { makeZoeKitForTest } from '@agoric/zoe/tools/setup-zoe.js';
+import { makeWellKnownSpaces } from '@agoric/vats/src/core/utils.js';
+import { makeMockChainStorageRoot } from '@agoric/internal/src/storage-test-utils.js';
+import { makeFakeBoard } from '@agoric/vats/tools/board-utils.js';
+import { allValues } from '@agoric/internal';
+import { AmountMath, makeIssuerKit } from '@agoric/ertp';
+import { makeNodeBundleCache } from '@endo/bundle-source/cache.js';
+import { eventLoopIteration } from '@agoric/internal/src/testing-utils.js';
+import { prepareSmartWallet } from '../src/smartWallet.js';
+
+/** @type {import('ava').TestFn>>} */
+const test = anyTest;
+
+const delay = ms => new Promise(resolve => setTimeout(resolve, ms));
+
+const nodeRequire = createRequire(import.meta.url);
+const asset = {
+ anyContract: nodeRequire.resolve(
+ '@agoric/zoe/src/contracts/automaticRefund.js',
+ ),
+};
+
+const mockBootstrapPowers = async (
+ log,
+ spaceNames = ['installation', 'instance', 'issuer', 'brand'],
+) => {
+ /** @type {import('@agoric/vat-data').Baggage} */
+ const baggage = makeScalarMapStore('bootstrap');
+ const zone = makeDurableZone(baggage);
+ const { produce, consume } = makePromiseSpace();
+
+ const { admin, vatAdminState } = makeFakeVatAdmin();
+ const { zoeService: zoe } = makeZoeKitForTest(admin);
+ produce.zoe.resolve(zoe);
+
+ const { nameHub: agoricNames, nameAdmin: agoricNamesAdmin } =
+ makeNameHubKit();
+ produce.agoricNames.resolve(agoricNames);
+
+ const spaces = await makeWellKnownSpaces(agoricNamesAdmin, log, spaceNames);
+
+ const invitationIssuer = await E(zoe).getInvitationIssuer();
+ const invitationBrand = await E(invitationIssuer).getBrand();
+ spaces.brand.produce.Invitation.resolve(invitationBrand);
+ spaces.issuer.produce.Invitation.resolve(invitationIssuer);
+
+ const chainStorage = makeMockChainStorageRoot();
+ produce.chainStorage.resolve(chainStorage);
+
+ const board = makeFakeBoard();
+ produce.board.resolve(board);
+
+ /** @type {BootstrapPowers} */
+ // @ts-expect-error mock
+ const powers = { produce, consume, ...spaces, zone };
+ const shared = {};
+
+ return { powers, vatAdminState, chainStorage, shared };
+};
+
+const makeTestContext = async t => {
+ const bootKit = await mockBootstrapPowers(t.log);
+ const bundleCache = await makeNodeBundleCache('bundles/', {}, s => import(s));
+
+ const { agoricNames, board, zoe } = bootKit.powers.consume;
+ const startAnyContract = async () => {
+ const bundle = await bundleCache.load(asset.anyContract, 'automaticRefund');
+ /** @type {Promise>} */
+ const installation = E(zoe).install(bundle);
+ return E(zoe).startInstance(installation);
+ };
+ const { instance: anyInstance } = await startAnyContract();
+
+ const makeSpendableAsset = () => {
+ const tok1 = makeIssuerKit('Tok1');
+ const { issuer, brand } = bootKit.powers;
+ // @ts-expect-error new symbol
+ issuer.produce.Token1.resolve(tok1.issuer);
+ // @ts-expect-error new symbol
+ brand.produce.Token1.resolve(tok1.brand);
+ return tok1;
+ };
+ const spendable = makeSpendableAsset();
+
+ const makeRegistry = async () => {
+ /** @type {[string, Brand][]} */
+ const be = await E(E(agoricNames).lookup('brand')).entries();
+ /** @type {[string, Issuer][]} */
+ const ie = await E(E(agoricNames).lookup('issuer')).entries();
+ const byName = Object.fromEntries(ie);
+ const descriptors = await Promise.all(
+ be.map(([name, b]) => {
+ /** @type {Promise} */
+ const d = allValues({
+ brand: b,
+ displayInfo: E(b).getDisplayInfo(),
+ issuer: byName[name],
+ petname: name,
+ });
+ return d;
+ }),
+ );
+ /** @type {MapStore} */
+ const store = makeScalarMapStore('registry');
+ store.addAll(harden(descriptors.map(d => [d.brand, d])));
+ return store;
+ };
+ /** @type {import('../src/smartWallet.js').BrandDescriptorRegistry} */
+ const registry = await makeRegistry();
+
+ /** @type {import('@agoric/vat-data').Baggage} */
+ const swBaggage = makeScalarMapStore('smart-wallet');
+
+ const secretWalletFactoryKey = Far('Key', {});
+
+ const { brand: brandSpace, issuer: issuerSpace } = bootKit.powers;
+ /** @type {Issuer<'set'>} */
+ // @ts-expect-error cast
+ const invitationIssuer = await issuerSpace.consume.Invitation;
+ /** @type {Brand<'set'>} */
+ // @ts-expect-error cast
+ const invitationBrand = await brandSpace.consume.Invitation;
+ const invitationDisplayInfo = await E(invitationBrand).getDisplayInfo();
+ const publicMarshaller = await E(board).getPublishingMarshaller();
+ const makeSmartWallet = prepareSmartWallet(swBaggage, {
+ agoricNames,
+ invitationBrand,
+ invitationDisplayInfo,
+ invitationIssuer,
+ publicMarshaller,
+ zoe,
+ secretWalletFactoryKey,
+ registry,
+ });
+
+ return { ...bootKit, makeSmartWallet, anyInstance, spendable };
+};
+
+test.before(async t => (t.context = await makeTestContext(t)));
+
+test.serial('handle failure to create invitation', async t => {
+ const { powers, makeSmartWallet, spendable, shared } = t.context;
+ const { chainStorage, board } = powers.consume;
+ /** @type {Issuer<'set'>} */
+ // @ts-expect-error cast
+ const invitationIssuer = powers.issuer.consume.Invitation;
+ const address = 'agoric1234';
+
+ // @ts-expect-error Test setup ensures that chainStorage resolution is not undefined. (see #8247)
+ const walletsStorage = E(chainStorage).makeChildNode('wallet');
+ const walletStorageNode = await E(walletsStorage).makeChildNode(address);
+
+ const invitationPurse = await E(invitationIssuer).makeEmptyPurse();
+
+ /** @type {() => import('@agoric/vats/src/vat-bank.js').Bank} */
+ const makeBank = () =>
+ Far('Bank', {
+ getPurse: async brand => {
+ assert(brand === spendable.brand);
+ if (shared.thePurse) return shared.thePurse;
+
+ const purse = await E(spendable.issuer).makeEmptyPurse();
+ const amt = AmountMath.make(spendable.brand, 100n);
+ const pmt = await E(spendable.mint).mintPayment(amt);
+ await E(purse).deposit(pmt);
+ const slowWithdrawPurse = {
+ ...purse,
+ withdraw: async a => {
+ await delay(100);
+ console.log('@@slow withdraw', a);
+ return E(purse).withdraw(a);
+ },
+ getCurrentAmount: () => purse.getCurrentAmount(),
+ };
+ return slowWithdrawPurse;
+ },
+ getAssetSubscription: () => {
+ throw new Error('TODO');
+ },
+ });
+
+ const theBank = makeBank();
+ shared.thePurse = await theBank.getPurse(spendable.brand);
+
+ const smartWallet = await makeSmartWallet({
+ address,
+ walletStorageNode,
+ bank: theBank,
+ invitationPurse,
+ });
+ shared.theWallet = smartWallet;
+
+ const { anyInstance } = t.context;
+ const In = AmountMath.make(spendable.brand, 5n);
+
+ /** @type {import('../src/smartWallet.js').BridgeAction} */
+ const spec1 = {
+ method: 'executeOffer',
+ offer: {
+ id: 1,
+ invitationSpec: {
+ source: 'contract',
+ instance: anyInstance,
+ publicInvitationMaker: 'noSuchMethod',
+ },
+ proposal: {
+ give: { In },
+ },
+ },
+ };
+
+ const publicMarshaller = await E(board).getPublishingMarshaller();
+ const actionCapData = await E(publicMarshaller).toCapData(spec1);
+ await t.throwsAsync(E(smartWallet).handleBridgeAction(actionCapData, true));
+ await delay(200);
+});
+
+test.serial('funds should be back in the purse', async t => {
+ t.like(t.context.shared.thePurse.getCurrentAmount(), { value: 100n });
+});
+
+test.serial('recover withdrawn payments', async t => {
+ const { powers, shared } = t.context;
+ const { thePurse, theWallet } = shared;
+
+ /** @type {import('../src/smartWallet.js').BridgeAction} */
+ const spec1 = {
+ method: 'tryExitOffer',
+ offerId: 1,
+ };
+
+ const { board } = powers.consume;
+ const publicMarshaller = await E(board).getPublishingMarshaller();
+
+ const actionCapData = await E(publicMarshaller).toCapData(spec1);
+ await t.throwsAsync(E(theWallet).handleBridgeAction(actionCapData, true), {
+ message: /key 1 not found in collection "live offer seats"/,
+ });
+ await eventLoopIteration();
+ await delay(10);
+ t.like(thePurse.getCurrentAmount(), { value: 100n });
+});
diff --git a/packages/solo/CHANGELOG.md b/packages/solo/CHANGELOG.md
index 1e94759bce1..9ef5bd249bb 100644
--- a/packages/solo/CHANGELOG.md
+++ b/packages/solo/CHANGELOG.md
@@ -3,6 +3,14 @@
All notable changes to this project will be documented in this file.
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
+### [0.10.4-u15.0](https://github.com/Agoric/agoric-sdk/compare/@agoric/solo@0.10.4-u14.1...@agoric/solo@0.10.4-u15.0) (2024-04-20)
+
+**Note:** Version bump only for package @agoric/solo
+
+
+
+
+
### [0.10.4-u14.1](https://github.com/Agoric/agoric-sdk/compare/@agoric/solo@0.10.4-u14.0...@agoric/solo@0.10.4-u14.1) (2024-03-12)
**Note:** Version bump only for package @agoric/solo
diff --git a/packages/solo/package.json b/packages/solo/package.json
index fadb370a4e6..347266c9093 100644
--- a/packages/solo/package.json
+++ b/packages/solo/package.json
@@ -1,6 +1,6 @@
{
"name": "@agoric/solo",
- "version": "0.10.4-u14.1",
+ "version": "0.10.4-u15.0",
"description": "Agoric's Solo vat runner",
"type": "module",
"bin": {
@@ -24,8 +24,8 @@
"dependencies": {
"@agoric/access-token": "^0.4.22-u11wf.0",
"@agoric/assert": "^0.6.1-u11wf.0",
- "@agoric/cache": "^0.3.3-u14.0",
- "@agoric/cosmic-swingset": "^0.42.0-u14.1",
+ "@agoric/cache": "^0.3.3-u15.0",
+ "@agoric/cosmic-swingset": "^0.42.0-u15.0",
"@agoric/internal": "^0.4.0-u14.0",
"@agoric/notifier": "^0.6.3-u14.0",
"@agoric/spawner": "^0.6.9-u14.0",
@@ -34,7 +34,7 @@
"@agoric/swingset-vat": "^0.32.3-u14.0",
"@agoric/telemetry": "^0.6.3-u14.0",
"@agoric/time": "^0.3.3-u14.0",
- "@agoric/vats": "^0.15.2-u14.1",
+ "@agoric/vats": "^0.15.2-u15.0",
"@agoric/wallet": "^0.18.4-u13.0",
"@endo/captp": "3.1.1",
"@endo/eventual-send": "0.17.2",
diff --git a/packages/swingset-runner/CHANGELOG.md b/packages/swingset-runner/CHANGELOG.md
index 4832999d258..1350e71cab7 100644
--- a/packages/swingset-runner/CHANGELOG.md
+++ b/packages/swingset-runner/CHANGELOG.md
@@ -3,6 +3,14 @@
All notable changes to this project will be documented in this file.
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
+### [0.22.3-u15.0](https://github.com/Agoric/agoric-sdk/compare/@agoric/swingset-runner@0.22.3-u14.0...@agoric/swingset-runner@0.22.3-u15.0) (2024-04-20)
+
+**Note:** Version bump only for package @agoric/swingset-runner
+
+
+
+
+
### [0.22.3-u14.0](https://github.com/Agoric/agoric-sdk/compare/@agoric/swingset-runner@0.22.3-u13.0...@agoric/swingset-runner@0.22.3-u14.0) (2024-02-27)
**Note:** Version bump only for package @agoric/swingset-runner
diff --git a/packages/swingset-runner/package.json b/packages/swingset-runner/package.json
index 70ec0c01eb8..ce9c23d2dd1 100644
--- a/packages/swingset-runner/package.json
+++ b/packages/swingset-runner/package.json
@@ -1,6 +1,6 @@
{
"name": "@agoric/swingset-runner",
- "version": "0.22.3-u14.0",
+ "version": "0.22.3-u15.0",
"private": true,
"description": "Application to launch SwingSet instances for development and testing",
"type": "module",
@@ -27,7 +27,7 @@
"@agoric/swingset-vat": "^0.32.3-u14.0",
"@agoric/telemetry": "^0.6.3-u14.0",
"@agoric/vat-data": "^0.5.3-u14.0",
- "@agoric/zoe": "^0.26.3-u14.0",
+ "@agoric/zoe": "^0.26.3-u15.0",
"@endo/bundle-source": "2.5.2-upstream-rollup",
"@endo/eventual-send": "0.17.2",
"@endo/init": "0.5.56",
diff --git a/packages/vats/CHANGELOG.md b/packages/vats/CHANGELOG.md
index fbe7aa6c3b4..24ea9ecd095 100644
--- a/packages/vats/CHANGELOG.md
+++ b/packages/vats/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.2-u15.0](https://github.com/Agoric/agoric-sdk/compare/@agoric/vats@0.15.2-u14.1...@agoric/vats@0.15.2-u15.0) (2024-04-20)
+
+
+### Features
+
+* upgrade zcf: install bundle and call updateZcfBundleId() ([74662d7](https://github.com/Agoric/agoric-sdk/commit/74662d73c0c213cbb537d7ff20e24fc31f35656d)), closes [#9250](https://github.com/Agoric/agoric-sdk/issues/9250)
+
+
+
### [0.15.2-u14.1](https://github.com/Agoric/agoric-sdk/compare/@agoric/vats@0.15.2-u14.0...@agoric/vats@0.15.2-u14.1) (2024-03-12)
**Note:** Version bump only for package @agoric/vats
diff --git a/packages/vats/package.json b/packages/vats/package.json
index 9250ef12699..84d7ce97f80 100644
--- a/packages/vats/package.json
+++ b/packages/vats/package.json
@@ -1,6 +1,6 @@
{
"name": "@agoric/vats",
- "version": "0.15.2-u14.1",
+ "version": "0.15.2-u15.0",
"description": "Agoric's Vat library",
"type": "module",
"main": "./index.js",
@@ -29,10 +29,10 @@
"license": "Apache-2.0",
"dependencies": {
"@agoric/assert": "^0.6.1-u11wf.0",
- "@agoric/deploy-script-support": "^0.10.4-u14.1",
+ "@agoric/deploy-script-support": "^0.10.4-u15.0",
"@agoric/ertp": "^0.16.3-u14.0",
- "@agoric/governance": "^0.10.4-u14.1",
- "@agoric/inter-protocol": "^0.16.2-u14.1",
+ "@agoric/governance": "^0.10.4-u15.0",
+ "@agoric/inter-protocol": "^0.16.2-u15.0",
"@agoric/internal": "^0.4.0-u14.0",
"@agoric/notifier": "^0.6.3-u14.0",
"@agoric/sharing-service": "^0.2.12-u14.0",
@@ -40,7 +40,7 @@
"@agoric/swingset-vat": "^0.32.3-u14.0",
"@agoric/time": "^0.3.3-u14.0",
"@agoric/vat-data": "^0.5.3-u14.0",
- "@agoric/zoe": "^0.26.3-u14.0",
+ "@agoric/zoe": "^0.26.3-u15.0",
"@agoric/zone": "^0.2.3-u14.0",
"@endo/far": "0.2.18",
"@endo/import-bundle": "0.3.4",
@@ -53,12 +53,12 @@
"jessie.js": "^0.3.2"
},
"devDependencies": {
- "@agoric/cosmic-swingset": "^0.42.0-u14.1",
+ "@agoric/cosmic-swingset": "^0.42.0-u15.0",
"@agoric/deploy-script-support": "^0.10.4-u13.0",
- "@agoric/smart-wallet": "^0.5.4-u14.1",
+ "@agoric/smart-wallet": "^0.5.4-u15.0",
"@agoric/swing-store": "^0.9.2-u14.0",
"@agoric/swingset-liveslots": "^0.10.3-u14.0",
- "@agoric/vats": "^0.15.2-u14.1",
+ "@agoric/vats": "^0.15.2-u15.0",
"@endo/bundle-source": "2.5.2-upstream-rollup",
"@endo/captp": "3.1.1",
"@endo/stream": "0.3.25",
diff --git a/packages/vats/scripts/upgrade-zcf.js b/packages/vats/scripts/upgrade-zcf.js
new file mode 100644
index 00000000000..a3105c46a76
--- /dev/null
+++ b/packages/vats/scripts/upgrade-zcf.js
@@ -0,0 +1,18 @@
+import { makeHelpers } from '@agoric/deploy-script-support';
+
+/** @type {import('packages/deploy-script-support/src/externalTypes.js').ProposalBuilder} */
+export const defaultProposalBuilder = async ({ publishRef, install }) =>
+ harden({
+ sourceSpec: '@agoric/vats/src/proposals/zcf-only-proposal.js',
+ getManifestCall: [
+ 'getManifestForUpgradingZcf',
+ {
+ zcfRef: publishRef(install('@agoric/zoe/src/contractFacet/vatRoot.js')),
+ },
+ ],
+ });
+
+export default async (homeP, endowments) => {
+ const { writeCoreProposal } = await makeHelpers(homeP, endowments);
+ await writeCoreProposal('upgrade-zcf', defaultProposalBuilder);
+};
diff --git a/packages/vats/src/proposals/zcf-only-proposal.js b/packages/vats/src/proposals/zcf-only-proposal.js
new file mode 100644
index 00000000000..85d3fd1a569
--- /dev/null
+++ b/packages/vats/src/proposals/zcf-only-proposal.js
@@ -0,0 +1,36 @@
+// @ts-check
+import { E } from '@endo/far';
+
+/**
+ * @param {BootstrapPowers} powers
+ * @param {object} options
+ * @param {{ zcfRef: VatSourceRef }} options.options
+ */
+export const upgradeZcfOnly = async ({ consume: { vatStore } }, options) => {
+ const { zcfRef } = options.options;
+
+ const { root: zoeRoot } = await E(vatStore).get('zoe');
+
+ const zoeConfigFacet = await E(zoeRoot).getZoeConfigFacet();
+ await E(zoeConfigFacet).updateZcfBundleId(zcfRef.bundleID);
+ console.log(`ZCF BUNDLE ID: `, zcfRef.bundleID);
+};
+harden(upgradeZcfOnly);
+
+// main and permit are for use with rollup-plugin-core-eval.js
+export const main = upgradeZcfOnly;
+
+export const permit = {
+ consume: {
+ vatStore: true,
+ },
+};
+
+export const manifest = {
+ [upgradeZcfOnly.name]: permit,
+};
+
+export const getManifestForUpgradingZcf = (_powers, options) => ({
+ manifest,
+ options,
+});
diff --git a/packages/wallet-connection/CHANGELOG.md b/packages/wallet-connection/CHANGELOG.md
index e8c695e8678..8e6fb003cc9 100644
--- a/packages/wallet-connection/CHANGELOG.md
+++ b/packages/wallet-connection/CHANGELOG.md
@@ -3,6 +3,14 @@
All notable changes to this project will be documented in this file.
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
+### [0.1.18-u15.0](https://github.com/Agoric/agoric-sdk/compare/@agoric/wallet-connection@0.1.18-u14.1...@agoric/wallet-connection@0.1.18-u15.0) (2024-04-20)
+
+**Note:** Version bump only for package @agoric/wallet-connection
+
+
+
+
+
### [0.1.18-u14.1](https://github.com/gibson042/agoric-sdk/compare/@agoric/wallet-connection@0.1.18-u14.0...@agoric/wallet-connection@0.1.18-u14.1) (2024-03-12)
**Note:** Version bump only for package @agoric/wallet-connection
diff --git a/packages/wallet-connection/package.json b/packages/wallet-connection/package.json
index cc4a4e84793..efdf9bd58c0 100644
--- a/packages/wallet-connection/package.json
+++ b/packages/wallet-connection/package.json
@@ -3,7 +3,7 @@
"description": "Webcomponent agoric-wallet-connection following open-wc recommendations",
"license": "MIT",
"author": "Agoric",
- "version": "0.1.18-u14.1",
+ "version": "0.1.18-u15.0",
"main": "index.js",
"module": "index.js",
"scripts": {
@@ -17,7 +17,7 @@
"lint:eslint": "exit 0"
},
"dependencies": {
- "@agoric/web-components": "^0.6.4-u14.1"
+ "@agoric/web-components": "^0.6.4-u15.0"
},
"publishConfig": {
"access": "public"
diff --git a/packages/wallet/api/CHANGELOG.md b/packages/wallet/api/CHANGELOG.md
index f7dd0cab460..a0e0cd67cf8 100644
--- a/packages/wallet/api/CHANGELOG.md
+++ b/packages/wallet/api/CHANGELOG.md
@@ -3,6 +3,14 @@
All notable changes to this project will be documented in this file.
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
+### [0.14.4-u15.0](https://github.com/Agoric/agoric/compare/@agoric/wallet-backend@0.14.4-u14.1...@agoric/wallet-backend@0.14.4-u15.0) (2024-04-20)
+
+**Note:** Version bump only for package @agoric/wallet-backend
+
+
+
+
+
### [0.14.4-u14.1](https://github.com/Agoric/agoric/compare/@agoric/wallet-backend@0.14.4-u14.0...@agoric/wallet-backend@0.14.4-u14.1) (2024-03-12)
**Note:** Version bump only for package @agoric/wallet-backend
diff --git a/packages/wallet/api/package.json b/packages/wallet/api/package.json
index 5553694e0b9..ebe2bb825ae 100644
--- a/packages/wallet/api/package.json
+++ b/packages/wallet/api/package.json
@@ -1,6 +1,6 @@
{
"name": "@agoric/wallet-backend",
- "version": "0.14.4-u14.1",
+ "version": "0.14.4-u15.0",
"description": "Wallet backend",
"type": "module",
"scripts": {
@@ -14,22 +14,22 @@
"lint:eslint": "eslint ."
},
"devDependencies": {
- "@agoric/vats": "^0.15.2-u14.1",
+ "@agoric/vats": "^0.15.2-u15.0",
"@endo/bundle-source": "2.5.2-upstream-rollup",
"@endo/init": "0.5.56",
"ava": "^5.2.0"
},
"dependencies": {
"@agoric/assert": "^0.6.1-u11wf.0",
- "@agoric/cache": "^0.3.3-u14.0",
+ "@agoric/cache": "^0.3.3-u15.0",
"@agoric/ertp": "^0.16.3-u14.0",
"@agoric/internal": "^0.4.0-u14.0",
"@agoric/notifier": "^0.6.3-u14.0",
- "@agoric/smart-wallet": "^0.5.4-u14.1",
+ "@agoric/smart-wallet": "^0.5.4-u15.0",
"@agoric/store": "^0.9.3-u14.0",
"@agoric/time": "^0.3.3-u14.0",
"@agoric/vat-data": "^0.5.3-u14.0",
- "@agoric/zoe": "^0.26.3-u14.0",
+ "@agoric/zoe": "^0.26.3-u15.0",
"@endo/eventual-send": "0.17.2",
"@endo/marshal": "0.8.5",
"@endo/nat": "4.1.27",
diff --git a/packages/web-components/CHANGELOG.md b/packages/web-components/CHANGELOG.md
index 6a182d2a37c..70f6479284f 100644
--- a/packages/web-components/CHANGELOG.md
+++ b/packages/web-components/CHANGELOG.md
@@ -3,6 +3,14 @@
All notable changes to this project will be documented in this file.
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
+### [0.6.4-u15.0](https://github.com/Agoric/agoric-sdk/compare/@agoric/web-components@0.6.4-u14.1...@agoric/web-components@0.6.4-u15.0) (2024-04-20)
+
+**Note:** Version bump only for package @agoric/web-components
+
+
+
+
+
### [0.6.4-u14.1](https://github.com/gibson042/agoric-sdk/compare/@agoric/web-components@0.6.4-u14.0...@agoric/web-components@0.6.4-u14.1) (2024-03-12)
**Note:** Version bump only for package @agoric/web-components
diff --git a/packages/web-components/package.json b/packages/web-components/package.json
index 18b8c196fd8..5d721abf2ef 100644
--- a/packages/web-components/package.json
+++ b/packages/web-components/package.json
@@ -3,7 +3,7 @@
"description": "Webcomponents for Agoric dapps",
"license": "MIT",
"author": "Agoric",
- "version": "0.6.4-u14.1",
+ "version": "0.6.4-u15.0",
"main": "index.js",
"module": "index.js",
"scripts": {
@@ -21,11 +21,11 @@
},
"dependencies": {
"@agoric/assert": "^0.6.1-u11wf.0",
- "@agoric/cache": "^0.3.3-u14.0",
+ "@agoric/cache": "^0.3.3-u15.0",
"@agoric/casting": "^0.4.3-u14.0",
"@agoric/ertp": "^0.16.3-u14.0",
"@agoric/notifier": "^0.6.3-u14.0",
- "@agoric/smart-wallet": "^0.5.4-u14.1",
+ "@agoric/smart-wallet": "^0.5.4-u15.0",
"@agoric/wallet": "^0.18.4-u13.0",
"@endo/captp": "3.1.1",
"@endo/eventual-send": "0.17.2",
diff --git a/packages/zoe/CHANGELOG.md b/packages/zoe/CHANGELOG.md
index 206461a11e6..b573b21c48e 100644
--- 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-u15.0](https://github.com/Agoric/agoric-sdk/compare/@agoric/zoe@0.26.3-u14.0...@agoric/zoe@0.26.3-u15.0) (2024-04-20)
+
+
+### Bug Fixes
+
+* fix ZCF to not await in first crank ([8e289fd](https://github.com/Agoric/agoric-sdk/commit/8e289fd679d89aec2fd2dd41f72f14cf41ae55a6)), closes [#8911](https://github.com/Agoric/agoric-sdk/issues/8911)
+
+
+
### [0.26.3-u14.0](https://github.com/Agoric/agoric-sdk/compare/@agoric/zoe@0.26.3-u13.0...@agoric/zoe@0.26.3-u14.0) (2024-02-27)
diff --git a/packages/zoe/package.json b/packages/zoe/package.json
index 13c50a5b75d..b6be4999187 100644
--- a/packages/zoe/package.json
+++ b/packages/zoe/package.json
@@ -1,6 +1,6 @@
{
"name": "@agoric/zoe",
- "version": "0.26.3-u14.0",
+ "version": "0.26.3-u15.0",
"description": "Zoe: the Smart Contract Framework for Offer Enforcement",
"type": "module",
"main": "./src/zoeService/zoe.js",
diff --git a/packages/zoe/src/contractFacet/zcfZygote.js b/packages/zoe/src/contractFacet/zcfZygote.js
index 114da07479f..f7fd5c7a032 100644
--- a/packages/zoe/src/contractFacet/zcfZygote.js
+++ b/packages/zoe/src/contractFacet/zcfZygote.js
@@ -426,8 +426,12 @@ export const makeZCFZygote = async (
await null;
if (!zcfBaggage.has('repairedContractCompletionWatcher')) {
- await E(zoeInstanceAdmin).repairContractCompletionWatcher();
- console.log(`Repaired contract completion watcher`);
+ // We don't wait because it's a cross-vat call (to Zoe) that can't be
+ // completed during this vat's start-up
+ E(zoeInstanceAdmin)
+ .repairContractCompletionWatcher()
+ .catch(() => {});
+
zcfBaggage.init('repairedContractCompletionWatcher', true);
}