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); }