diff --git a/packages/SwingSet/src/types.js b/packages/SwingSet/src/types.js index fb2705dd2a5..2a3a24c16b3 100644 --- a/packages/SwingSet/src/types.js +++ b/packages/SwingSet/src/types.js @@ -5,6 +5,7 @@ /** * @typedef {'getExport' | 'nestedEvaluate' | 'endoZipBase64'} BundleFormat * @typedef { string } BundleID + * @typedef { {} } BundleCap */ /** diff --git a/packages/deploy-script-support/test/unitTests/test-install.js b/packages/deploy-script-support/test/unitTests/test-install.js index c752f764ca2..4a8b706f1d1 100644 --- a/packages/deploy-script-support/test/unitTests/test-install.js +++ b/packages/deploy-script-support/test/unitTests/test-install.js @@ -2,7 +2,7 @@ import { test } from '@agoric/zoe/tools/prepare-test-env-ava.js'; import { makeZoeKit } from '@agoric/zoe'; -import fakeVatAdmin from '@agoric/zoe/tools/fakeVatAdmin.js'; +import { fakeVatAdmin, zcfBundlecap } from '@agoric/zoe/tools/fakeVatAdmin.js'; import { makeBoard } from '@agoric/vats/src/lib-board.js'; import bundleSource from '@endo/bundle-source'; import { resolve as importMetaResolve } from 'import-meta-resolve'; @@ -12,7 +12,7 @@ import '../../exported.js'; import { makeInstall } from '../../src/install.js'; test('install', async t => { - const { zoeService: zoe } = makeZoeKit(fakeVatAdmin); + const { zoeService: zoe } = makeZoeKit(fakeVatAdmin, zcfBundlecap); let addedInstallation; diff --git a/packages/deploy-script-support/test/unitTests/test-offer.js b/packages/deploy-script-support/test/unitTests/test-offer.js index 4681d9daa12..1eb51e96d00 100644 --- a/packages/deploy-script-support/test/unitTests/test-offer.js +++ b/packages/deploy-script-support/test/unitTests/test-offer.js @@ -2,7 +2,7 @@ import { test } from '@agoric/zoe/tools/prepare-test-env-ava.js'; import { makeZoeKit } from '@agoric/zoe'; -import fakeVatAdmin from '@agoric/zoe/tools/fakeVatAdmin.js'; +import { fakeVatAdmin, zcfBundlecap } from '@agoric/zoe/tools/fakeVatAdmin.js'; import bundleSource from '@endo/bundle-source'; import { makeIssuerKit, AmountMath } from '@agoric/ertp'; import { resolve as importMetaResolve } from 'import-meta-resolve'; @@ -37,7 +37,7 @@ test('offer', async t => { }, saveOfferResult: () => {}, }; - const { zoeService: zoe } = makeZoeKit(fakeVatAdmin); + const { zoeService: zoe } = makeZoeKit(fakeVatAdmin, zcfBundlecap); const bundleUrl = await importMetaResolve( '@agoric/zoe/src/contracts/automaticRefund.js', diff --git a/packages/deploy-script-support/test/unitTests/test-startInstance.js b/packages/deploy-script-support/test/unitTests/test-startInstance.js index 900932867e6..4c5c52ae23a 100644 --- a/packages/deploy-script-support/test/unitTests/test-startInstance.js +++ b/packages/deploy-script-support/test/unitTests/test-startInstance.js @@ -2,7 +2,7 @@ import { test } from '@agoric/zoe/tools/prepare-test-env-ava.js'; import { makeZoeKit } from '@agoric/zoe'; -import fakeVatAdmin from '@agoric/zoe/tools/fakeVatAdmin.js'; +import { fakeVatAdmin, zcfBundlecap } from '@agoric/zoe/tools/fakeVatAdmin.js'; import bundleSource from '@endo/bundle-source'; import { makeIssuerKit } from '@agoric/ertp'; import { resolve as importMetaResolve } from 'import-meta-resolve'; @@ -19,7 +19,7 @@ test('startInstance', async t => { const moolaKit = makeIssuerKit('moola'); const usdKit = makeIssuerKit('usd'); - const { zoeService: zoe } = makeZoeKit(fakeVatAdmin); + const { zoeService: zoe } = makeZoeKit(fakeVatAdmin, zcfBundlecap); const bundleUrl = new URL( await importMetaResolve( diff --git a/packages/governance/test/swingsetTests/committeeBinary/bootstrap.js b/packages/governance/test/swingsetTests/committeeBinary/bootstrap.js index e7ddf97b11c..472a38f8ecf 100644 --- a/packages/governance/test/swingsetTests/committeeBinary/bootstrap.js +++ b/packages/governance/test/swingsetTests/committeeBinary/bootstrap.js @@ -212,8 +212,9 @@ const makeBootstrap = (argv, cb, vatPowers) => async (vats, devices) => { const vatAdminSvc = await E(vats.vatAdmin).createVatAdminService( devices.vatAdmin, ); + const zcfBundlecap = vatPowers.D(devices.bundle).getNamedBundleCap('zcf'); /** @type { ERef } */ - const zoe = E(vats.zoe).buildZoe(vatAdminSvc); + const zoe = E(vats.zoe).buildZoe(vatAdminSvc, zcfBundlecap); const [committee, binaryVoteCounter] = await Promise.all([ E(zoe).install(cb.committee), diff --git a/packages/governance/test/swingsetTests/committeeBinary/vat-zoe.js b/packages/governance/test/swingsetTests/committeeBinary/vat-zoe.js index e3adb132a79..4962e5d43f3 100644 --- a/packages/governance/test/swingsetTests/committeeBinary/vat-zoe.js +++ b/packages/governance/test/swingsetTests/committeeBinary/vat-zoe.js @@ -6,9 +6,13 @@ import { makeZoeKit } from '@agoric/zoe'; export function buildRootObject(vatPowers) { return Far('root', { - buildZoe: vatAdminSvc => { + buildZoe: (vatAdminSvc, zcfBundlecap) => { const shutdownZoeVat = vatPowers.exitVatWithFailure; - const { zoeService: zoe } = makeZoeKit(vatAdminSvc, shutdownZoeVat); + const { zoeService: zoe } = makeZoeKit( + vatAdminSvc, + zcfBundlecap, + shutdownZoeVat, + ); return zoe; }, }); diff --git a/packages/governance/test/swingsetTests/contractGovernor/bootstrap.js b/packages/governance/test/swingsetTests/contractGovernor/bootstrap.js index 99f4a3a25be..ba25467adae 100644 --- a/packages/governance/test/swingsetTests/contractGovernor/bootstrap.js +++ b/packages/governance/test/swingsetTests/contractGovernor/bootstrap.js @@ -188,8 +188,9 @@ const makeBootstrap = (argv, cb, vatPowers) => async (vats, devices) => { const vatAdminSvc = await E(vats.vatAdmin).createVatAdminService( devices.vatAdmin, ); + const zcfBundlecap = vatPowers.D(devices.bundle).getNamedBundleCap('zcf'); /** @type { ERef } */ - const zoe = E(vats.zoe).buildZoe(vatAdminSvc); + const zoe = E(vats.zoe).buildZoe(vatAdminSvc, zcfBundlecap); const installations = await installContracts(zoe, cb); const timer = buildManualTimer(log); const voterCreator = E(vats.voter).build(zoe); diff --git a/packages/governance/test/swingsetTests/contractGovernor/vat-zoe.js b/packages/governance/test/swingsetTests/contractGovernor/vat-zoe.js index e3adb132a79..4962e5d43f3 100644 --- a/packages/governance/test/swingsetTests/contractGovernor/vat-zoe.js +++ b/packages/governance/test/swingsetTests/contractGovernor/vat-zoe.js @@ -6,9 +6,13 @@ import { makeZoeKit } from '@agoric/zoe'; export function buildRootObject(vatPowers) { return Far('root', { - buildZoe: vatAdminSvc => { + buildZoe: (vatAdminSvc, zcfBundlecap) => { const shutdownZoeVat = vatPowers.exitVatWithFailure; - const { zoeService: zoe } = makeZoeKit(vatAdminSvc, shutdownZoeVat); + const { zoeService: zoe } = makeZoeKit( + vatAdminSvc, + zcfBundlecap, + shutdownZoeVat, + ); return zoe; }, }); diff --git a/packages/governance/test/unitTests/test-committee.js b/packages/governance/test/unitTests/test-committee.js index dc464854842..51ada730740 100644 --- a/packages/governance/test/unitTests/test-committee.js +++ b/packages/governance/test/unitTests/test-committee.js @@ -7,7 +7,7 @@ import '@agoric/zoe/exported.js'; import path from 'path'; import { E } from '@agoric/eventual-send'; import { makeZoeKit } from '@agoric/zoe'; -import fakeVatAdmin from '@agoric/zoe/tools/fakeVatAdmin.js'; +import { fakeVatAdmin, zcfBundlecap } from '@agoric/zoe/tools/fakeVatAdmin.js'; import bundleSource from '@endo/bundle-source'; import buildManualTimer from '@agoric/zoe/tools/manualTimer.js'; @@ -25,7 +25,7 @@ const electorateRoot = `${dirname}/../../src/committee.js`; const counterRoot = `${dirname}/../../src/binaryVoteCounter.js`; const setupContract = async () => { - const { zoeService: zoe } = makeZoeKit(fakeVatAdmin); + const { zoeService: zoe } = makeZoeKit(fakeVatAdmin, zcfBundlecap); // pack the contract const [electorateBundle, counterBundle] = await Promise.all([ diff --git a/packages/governance/test/unitTests/test-paramGovernance.js b/packages/governance/test/unitTests/test-paramGovernance.js index ebadfbb097f..b63b7a8e2f4 100644 --- a/packages/governance/test/unitTests/test-paramGovernance.js +++ b/packages/governance/test/unitTests/test-paramGovernance.js @@ -6,7 +6,10 @@ import '@agoric/zoe/exported.js'; import { makeZoeKit } from '@agoric/zoe'; import bundleSource from '@endo/bundle-source'; import buildManualTimer from '@agoric/zoe/tools/manualTimer.js'; -import { makeFakeVatAdmin } from '@agoric/zoe/tools/fakeVatAdmin.js'; +import { + makeFakeVatAdmin, + zcfBundlecap, +} from '@agoric/zoe/tools/fakeVatAdmin.js'; import { E } from '@agoric/eventual-send'; import { makeLoopback } from '@endo/captp'; @@ -50,6 +53,7 @@ const setUpZoeForTest = async setJig => { const { zoeService, feeMintAccess: nonFarFeeMintAccess } = makeZoeKit( makeFakeVatAdmin(setJig, o => makeFar(o)).admin, + zcfBundlecap, ); /** @type {ERef} */ const zoe = makeFar(zoeService); diff --git a/packages/pegasus/test/test-peg.js b/packages/pegasus/test/test-peg.js index 19b7999168b..4cc9da1dfea 100644 --- a/packages/pegasus/test/test-peg.js +++ b/packages/pegasus/test/test-peg.js @@ -11,7 +11,7 @@ import bundleSource from '@endo/bundle-source'; import { AmountMath } from '@agoric/ertp'; import { makeZoeKit } from '@agoric/zoe'; -import fakeVatAdmin from '@agoric/zoe/tools/fakeVatAdmin.js'; +import { fakeVatAdmin, zcfBundlecap } from '@agoric/zoe/tools/fakeVatAdmin.js'; import { Far } from '@endo/marshal'; import { makeSubscription } from '@agoric/notifier'; @@ -62,7 +62,7 @@ async function testRemotePeg(t) { }, }); - const { zoeService: zoe } = makeZoeKit(fakeVatAdmin); + const { zoeService: zoe } = makeZoeKit(fakeVatAdmin, zcfBundlecap); // Pack the contract. const contractBundle = await bundleSource(contractPath); diff --git a/packages/run-protocol/test/amm/vpool-xyk-amm/setup.js b/packages/run-protocol/test/amm/vpool-xyk-amm/setup.js index 048d0ee0dd9..aa2654d4f6f 100644 --- a/packages/run-protocol/test/amm/vpool-xyk-amm/setup.js +++ b/packages/run-protocol/test/amm/vpool-xyk-amm/setup.js @@ -5,7 +5,7 @@ import { E } from '@agoric/eventual-send'; import { makeLoopback } from '@endo/captp'; import { resolve as importMetaResolve } from 'import-meta-resolve'; -import { makeFakeVatAdmin } from '@agoric/zoe/tools/fakeVatAdmin.js'; +import { makeFakeVatAdmin, zcfBundlecap } from '@agoric/zoe/tools/fakeVatAdmin.js'; import { makeZoeKit } from '@agoric/zoe'; import buildManualTimer from '@agoric/zoe/tools/manualTimer.js'; @@ -44,7 +44,7 @@ export const setUpZoeForTest = async () => { const { makeFar } = makeLoopback('zoeTest'); const { zoeService, feeMintAccess: nonFarFeeMintAccess } = makeZoeKit( - makeFakeVatAdmin(() => {}).admin, + makeFakeVatAdmin(() => {}).admin, zcfBundlecap, ); /** @type {ERef} */ const zoe = makeFar(zoeService); diff --git a/packages/run-protocol/test/vaultFactory/swingsetTests/governance/bootstrap.js b/packages/run-protocol/test/vaultFactory/swingsetTests/governance/bootstrap.js index 24a605c638e..e263bd1da7f 100644 --- a/packages/run-protocol/test/vaultFactory/swingsetTests/governance/bootstrap.js +++ b/packages/run-protocol/test/vaultFactory/swingsetTests/governance/bootstrap.js @@ -81,7 +81,8 @@ const makeBootstrap = (argv, cb, vatPowers) => async (vats, devices) => { const vatAdminSvc = await E(vats.vatAdmin).createVatAdminService( devices.vatAdmin, ); - const { zoe, feeMintAccess } = await E(vats.zoe).buildZoe(vatAdminSvc); + const zcfBundlecap = vatPowers.D(devices.bundle).getNamedBundleCap('zcf'); + const { zoe, feeMintAccess } = await E(vats.zoe).buildZoe(vatAdminSvc, zcfBundlecap); const installations = await installContracts(zoe, cb); const voterCreator = E(vats.voter).build(zoe); diff --git a/packages/run-protocol/test/vaultFactory/swingsetTests/governance/vat-zoe.js b/packages/run-protocol/test/vaultFactory/swingsetTests/governance/vat-zoe.js index 7b54210f847..4940cf4f673 100644 --- a/packages/run-protocol/test/vaultFactory/swingsetTests/governance/vat-zoe.js +++ b/packages/run-protocol/test/vaultFactory/swingsetTests/governance/vat-zoe.js @@ -7,10 +7,11 @@ import { makeZoeKit } from '@agoric/zoe'; /** @type {BuildRootObjectForTestVat} */ export function buildRootObject(vatPowers) { return Far('root', { - buildZoe: vatAdminSvc => { + buildZoe: (vatAdminSvc, zcfBundlecap) => { const shutdownZoeVat = vatPowers.exitVatWithFailure; const { zoeService: zoe, feeMintAccess } = makeZoeKit( vatAdminSvc, + zcfBundlecap, shutdownZoeVat, ); diff --git a/packages/run-protocol/test/vaultFactory/swingsetTests/vaultFactory/bootstrap.js b/packages/run-protocol/test/vaultFactory/swingsetTests/vaultFactory/bootstrap.js index 9462733f1c1..61ca88adce8 100644 --- a/packages/run-protocol/test/vaultFactory/swingsetTests/vaultFactory/bootstrap.js +++ b/packages/run-protocol/test/vaultFactory/swingsetTests/vaultFactory/bootstrap.js @@ -9,7 +9,8 @@ function makeBootstrap(argv, cb, vatPowers) { const vatAdminSvc = await E(vats.vatAdmin).createVatAdminService( devices.vatAdmin, ); - const { zoe, feeMintAccess } = await E(vats.zoe).buildZoe(vatAdminSvc); + const zcfBundlecap = vatPowers.D(devices.bundle).getNamedBundleCap('zcf'); + const { zoe, feeMintAccess } = await E(vats.zoe).buildZoe(vatAdminSvc, zcfBundlecap); const installations = await installContracts(zoe, cb); diff --git a/packages/run-protocol/test/vaultFactory/swingsetTests/vaultFactory/vat-zoe.js b/packages/run-protocol/test/vaultFactory/swingsetTests/vaultFactory/vat-zoe.js index 34484f9391c..26c3cef83f5 100644 --- a/packages/run-protocol/test/vaultFactory/swingsetTests/vaultFactory/vat-zoe.js +++ b/packages/run-protocol/test/vaultFactory/swingsetTests/vaultFactory/vat-zoe.js @@ -7,10 +7,11 @@ import { makeZoeKit } from '@agoric/zoe'; /** @type {BuildRootObjectForTestVat} */ export function buildRootObject(vatPowers) { return Far('root', { - buildZoe: vatAdminSvc => { + buildZoe: (vatAdminSvc, zcfBundlecap) => { const shutdownZoeVat = vatPowers.exitVatWithFailure; const { zoeService: zoe, feeMintAccess } = makeZoeKit( vatAdminSvc, + zcfBundlecap, shutdownZoeVat, ); return { zoe, feeMintAccess }; diff --git a/packages/run-protocol/test/vaultFactory/test-bootstrapPayment.js b/packages/run-protocol/test/vaultFactory/test-bootstrapPayment.js index 7ee89712157..b77730f1be7 100644 --- a/packages/run-protocol/test/vaultFactory/test-bootstrapPayment.js +++ b/packages/run-protocol/test/vaultFactory/test-bootstrapPayment.js @@ -8,7 +8,7 @@ import '../../src/vaultFactory/types.js'; import path from 'path'; import { E } from '@agoric/eventual-send'; import bundleSource from '@endo/bundle-source'; -import { makeFakeVatAdmin } from '@agoric/zoe/tools/fakeVatAdmin.js'; +import { makeFakeVatAdmin, zcfBundlecap } from '@agoric/zoe/tools/fakeVatAdmin.js'; import { makeZoeKit } from '@agoric/zoe'; import buildManualTimer from '@agoric/zoe/tools/manualTimer.js'; import { AmountMath } from '@agoric/ertp'; @@ -59,7 +59,7 @@ const installBundle = (zoe, contractBundle) => E(zoe).install(contractBundle); const setUpZoeForTest = async setJig => { const { makeFar } = makeLoopback('zoeTest'); const { zoeService, feeMintAccess: nonFarFeeMintAccess } = makeZoeKit( - makeFakeVatAdmin(setJig).admin, + makeFakeVatAdmin(setJig).admin, zcfBundlecap ); /** @type {ERef} */ const zoe = makeFar(zoeService); diff --git a/packages/run-protocol/test/vaultFactory/test-vault-interest.js b/packages/run-protocol/test/vaultFactory/test-vault-interest.js index 23c7a382a80..56b029d1019 100644 --- a/packages/run-protocol/test/vaultFactory/test-vault-interest.js +++ b/packages/run-protocol/test/vaultFactory/test-vault-interest.js @@ -3,7 +3,7 @@ import { test } from '@agoric/zoe/tools/prepare-test-env-ava.js'; import '@agoric/zoe/exported.js'; import { E } from '@agoric/eventual-send'; -import { makeFakeVatAdmin } from '@agoric/zoe/tools/fakeVatAdmin.js'; +import { makeFakeVatAdmin, zcfBundlecap } from '@agoric/zoe/tools/fakeVatAdmin.js'; import { makeLoopback } from '@endo/captp'; import { makeZoeKit } from '@agoric/zoe'; import bundleSource from '@endo/bundle-source'; @@ -40,7 +40,7 @@ const setJig = jig => { const { makeFar, makeNear: makeRemote } = makeLoopback('zoeTest'); const { zoeService, feeMintAccess: nonFarFeeMintAccess } = makeZoeKit( - makeFakeVatAdmin(setJig, makeRemote).admin, + makeFakeVatAdmin(setJig, makeRemote).admin, zcfBundlecap ); /** @type {ERef} */ const zoe = makeFar(zoeService); diff --git a/packages/run-protocol/test/vaultFactory/test-vault.js b/packages/run-protocol/test/vaultFactory/test-vault.js index d1af8e139ec..3b4ac730dff 100644 --- a/packages/run-protocol/test/vaultFactory/test-vault.js +++ b/packages/run-protocol/test/vaultFactory/test-vault.js @@ -4,7 +4,7 @@ import { test } from '@agoric/zoe/tools/prepare-test-env-ava.js'; import '@agoric/zoe/exported.js'; import { E } from '@agoric/eventual-send'; -import { makeFakeVatAdmin } from '@agoric/zoe/tools/fakeVatAdmin.js'; +import { makeFakeVatAdmin, zcfBundlecap } from '@agoric/zoe/tools/fakeVatAdmin.js'; import { makeLoopback } from '@endo/captp'; import { makeZoeKit } from '@agoric/zoe'; import bundleSource from '@endo/bundle-source'; @@ -38,7 +38,7 @@ const setJig = jig => { const { makeFar, makeNear: makeRemote } = makeLoopback('zoeTest'); const { zoeService, feeMintAccess: nonFarFeeMintAccess } = makeZoeKit( - makeFakeVatAdmin(setJig, makeRemote).admin, + makeFakeVatAdmin(setJig, makeRemote).admin, zcfBundlecap ); /** @type {ERef} */ const zoe = makeFar(zoeService); diff --git a/packages/vats/decentral-config.json b/packages/vats/decentral-config.json index c535bcecacc..b273c06f2a3 100644 --- a/packages/vats/decentral-config.json +++ b/packages/vats/decentral-config.json @@ -38,10 +38,7 @@ "sourceSpec": "./src/vat-walletManager.js" }, "zoe": { - "sourceSpec": "./src/vat-zoe.js", - "parameters": { - "zcfBundleName": "zcf" - } + "sourceSpec": "./src/vat-zoe.js" }, "bootstrap": { "sourceSpec": "./src/bootstrap.js" diff --git a/packages/vats/decentral-core-config.json b/packages/vats/decentral-core-config.json index 9450241a9e1..64ecd5b9dd9 100644 --- a/packages/vats/decentral-core-config.json +++ b/packages/vats/decentral-core-config.json @@ -40,10 +40,7 @@ "sourceSpec": "./src/vat-walletManager.js" }, "zoe": { - "sourceSpec": "./src/vat-zoe.js", - "parameters": { - "zcfBundleName": "zcf" - } + "sourceSpec": "./src/vat-zoe.js" } }, "defaultManagerType": "xs-worker" diff --git a/packages/vats/decentral-demo-config.json b/packages/vats/decentral-demo-config.json index 3eb1420e185..7d5ecd443b5 100644 --- a/packages/vats/decentral-demo-config.json +++ b/packages/vats/decentral-demo-config.json @@ -43,10 +43,7 @@ "sourceSpec": "./src/vat-walletManager.js" }, "zoe": { - "sourceSpec": "./src/vat-zoe.js", - "parameters": { - "zcfBundleName": "zcf" - } + "sourceSpec": "./src/vat-zoe.js" } }, "defaultManagerType": "xs-worker" diff --git a/packages/vats/src/bootstrap.js b/packages/vats/src/bootstrap.js index 466ba357749..ddbe70117d5 100644 --- a/packages/vats/src/bootstrap.js +++ b/packages/vats/src/bootstrap.js @@ -66,6 +66,7 @@ export function buildRootObject(vatPowers, vatParameters) { vats, bridgeManager, timerDevice, + bundleDevice, vatAdminSvc, noFakeCurrencies, ) { @@ -80,6 +81,9 @@ export function buildRootObject(vatPowers, vatParameters) { const chainTimerServiceP = E(vats.timer).createTimerService(timerDevice); + // vatParameters.zcfBundleName, + const zcfBundlecap = D(bundleDevice).getNamedBundleCap('zcf'); + // Create singleton instances. const [ bankManager, @@ -96,7 +100,7 @@ export function buildRootObject(vatPowers, vatParameters) { chainTimerServiceP, /** @type {Promise<{ zoeService: ZoeService, feeMintAccess: * FeeMintAccess }>} */ ( - E(vats.zoe).buildZoe(vatAdminSvc, feeIssuerConfig) + E(vats.zoe).buildZoe(vatAdminSvc, zcfBundlecap, feeIssuerConfig) ), E(vats.priceAuthority).makePriceAuthority(), E(vats.walletManager).buildWalletManager(vatAdminSvc), @@ -986,6 +990,7 @@ export function buildRootObject(vatPowers, vatParameters) { vats, bridgeManager, devices.timer, + devices.bundle, vatAdminSvc, noFakeCurrencies, ); @@ -1045,6 +1050,7 @@ export function buildRootObject(vatPowers, vatParameters) { vats, bridgeManager, devices.timer, + devices.bundle, vatAdminSvc, noFakeCurrencies, ); diff --git a/packages/vats/src/vat-zoe.js b/packages/vats/src/vat-zoe.js index eb9ce0b0f30..d32c88dfa46 100644 --- a/packages/vats/src/vat-zoe.js +++ b/packages/vats/src/vat-zoe.js @@ -3,13 +3,13 @@ import { makeZoeKit } from '@agoric/zoe'; export function buildRootObject(vatPowers, vatParameters) { return Far('root', { - buildZoe: async (adminVat, feeIssuerConfig) => { + buildZoe: async (adminVat, zcfBundlecap, feeIssuerConfig) => { const shutdownZoeVat = vatPowers.exitVatWithFailure; const { zoeService, feeMintAccess } = makeZoeKit( adminVat, + zcfBundlecap, shutdownZoeVat, feeIssuerConfig, - vatParameters.zcfBundleName, ); return harden({ zoeService, diff --git a/packages/wallet/api/test/test-getPursesNotifier.js b/packages/wallet/api/test/test-getPursesNotifier.js index 50db96864fd..33b73e206b5 100644 --- a/packages/wallet/api/test/test-getPursesNotifier.js +++ b/packages/wallet/api/test/test-getPursesNotifier.js @@ -3,7 +3,7 @@ import { test } from '@agoric/zoe/tools/prepare-test-env-ava.js'; import { makeIssuerKit } from '@agoric/ertp'; import { makeZoeKit } from '@agoric/zoe'; -import fakeVatAdmin from '@agoric/zoe/tools/fakeVatAdmin.js'; +import { fakeVatAdmin, zcfBundlecap} from '@agoric/zoe/tools/fakeVatAdmin.js'; // eslint-disable-next-line import/no-extraneous-dependencies import { makeBoard } from '@agoric/vats/src/lib-board.js'; // eslint-disable-next-line import/no-extraneous-dependencies @@ -24,7 +24,7 @@ function makeFakeMyAddressNameAdmin() { } const setup = async () => { - const { zoeService: zoe } = makeZoeKit(fakeVatAdmin); + const { zoeService: zoe } = makeZoeKit(fakeVatAdmin, zcfBundlecap); const board = makeBoard(); const pursesStateChangeHandler = _data => {}; diff --git a/packages/wallet/api/test/test-lib-wallet.js b/packages/wallet/api/test/test-lib-wallet.js index a553808a736..170d2cf65e9 100644 --- a/packages/wallet/api/test/test-lib-wallet.js +++ b/packages/wallet/api/test/test-lib-wallet.js @@ -6,7 +6,7 @@ import bundleSource from '@endo/bundle-source'; import { makeIssuerKit, AmountMath, AssetKind } from '@agoric/ertp'; import { makeZoeKit } from '@agoric/zoe'; -import fakeVatAdmin from '@agoric/zoe/tools/fakeVatAdmin.js'; +import { fakeVatAdmin, zcfBundlecap } from '@agoric/zoe/tools/fakeVatAdmin.js'; import { E } from '@agoric/eventual-send'; import { assert } from '@agoric/assert'; @@ -45,7 +45,7 @@ async function setupTest() { const moolaBundle = makeIssuerKit('moola'); const simoleanBundle = makeIssuerKit('simolean'); const rpgBundle = makeIssuerKit('rpg', AssetKind.SET); - const { zoeService: zoe } = makeZoeKit(fakeVatAdmin); + const { zoeService: zoe } = makeZoeKit(fakeVatAdmin, zcfBundlecap); const board = makeBoard(); // Create AutomaticRefund instance @@ -1289,7 +1289,7 @@ test('addOffer offer.invitation', async t => { }); test('addOffer makeContinuingInvitation', async t => { - const { zoeService: zoe } = makeZoeKit(fakeVatAdmin); + const { zoeService: zoe } = makeZoeKit(fakeVatAdmin, zcfBundlecap); const board = makeBoard(); // Create ContinuingInvitationExample instance @@ -1373,7 +1373,7 @@ test('addOffer makeContinuingInvitation', async t => { }); test('getZoe, getBoard', async t => { - const { zoeService: zoe } = makeZoeKit(fakeVatAdmin); + const { zoeService: zoe } = makeZoeKit(fakeVatAdmin, zcfBundlecap); const board = makeBoard(); const pursesStateChangeHandler = _data => {}; @@ -1393,7 +1393,7 @@ test('getZoe, getBoard', async t => { }); test('stamps from dateNow', async t => { - const { zoeService: zoe } = makeZoeKit(fakeVatAdmin); + const { zoeService: zoe } = makeZoeKit(fakeVatAdmin, zcfBundlecap); const board = makeBoard(); const startDateMS = new Date(2020, 0, 1).valueOf(); diff --git a/packages/zoe/src/zoeService/createZCFVat.js b/packages/zoe/src/zoeService/createZCFVat.js index 03d8c289b89..304a9430029 100644 --- a/packages/zoe/src/zoeService/createZCFVat.js +++ b/packages/zoe/src/zoeService/createZCFVat.js @@ -1,18 +1,20 @@ import { E } from '@agoric/eventual-send'; +import { passStyleOf } from '@endo/marshal'; /** * Attenuate the power of vatAdminSvc by restricting it such that only * ZCF Vats can be created. * * @param {VatAdminSvc} vatAdminSvc - * @param {string=} zcfBundleName + * @param {BundleCap} zcfBundlecap * @returns {CreateZCFVat} */ -export const setupCreateZCFVat = (vatAdminSvc, zcfBundleName = 'zcf') => { +export const setupCreateZCFVat = (vatAdminSvc, zcfBundlecap) => { /** @type {CreateZCFVat} */ const createZCFVat = async () => { - assert.typeof(zcfBundleName, 'string'); - const rootAndAdminNodeP = E(vatAdminSvc).createVatByName(zcfBundleName); + assert.typeof(zcfBundlecap, 'object'); + assert.equal(passStyleOf(zcfBundlecap), 'remotable'); + const rootAndAdminNodeP = E(vatAdminSvc).createVat(zcfBundlecap); const rootAndAdminNode = await rootAndAdminNodeP; return rootAndAdminNode; }; diff --git a/packages/zoe/src/zoeService/types.js b/packages/zoe/src/zoeService/types.js index 43139f4bbb2..1c02c237690 100644 --- a/packages/zoe/src/zoeService/types.js +++ b/packages/zoe/src/zoeService/types.js @@ -268,8 +268,7 @@ /** * @typedef {Object} VatAdminSvc - * @property {(bundle: SourceBundle) => RootAndAdminNode} createVat - * @property {(BundleName: string) => RootAndAdminNode} createVatByName + * @property {(bundlecap: bundlecap) => RootAndAdminNode} createVat */ /** diff --git a/packages/zoe/src/zoeService/zoe.js b/packages/zoe/src/zoeService/zoe.js index 6b7889d1f54..f63d86398b0 100644 --- a/packages/zoe/src/zoeService/zoe.js +++ b/packages/zoe/src/zoeService/zoe.js @@ -31,11 +31,11 @@ import { createFeeMint } from './feeMint.js'; * * @param {VatAdminSvc} vatAdminSvc - The vatAdmin Service, which carries the power * to create a new vat. + * @param {BundleCap} zcfBundlecap - handle to the ZCF source bundle * @param {ShutdownWithFailure} shutdownZoeVat - a function to * shutdown the Zoe Vat. This function needs to use the vatPowers * available to a vat. * @param {FeeIssuerConfig} feeIssuerConfig - * @param {string} [zcfBundleName] - The name of the contract facet bundle. * @returns {{ * zoeService: ZoeService, * feeMintAccess: FeeMintAccess, @@ -43,13 +43,13 @@ import { createFeeMint } from './feeMint.js'; */ const makeZoeKit = ( vatAdminSvc, + zcfBundlecap, shutdownZoeVat = () => {}, feeIssuerConfig = { name: 'RUN', assetKind: AssetKind.NAT, displayInfo: harden({ decimalPlaces: 6, assetKind: AssetKind.NAT }), }, - zcfBundleName = undefined, ) => { // We must pass the ZoeService to `makeStartInstance` before it is // defined. See below where the promise is resolved. @@ -64,7 +64,7 @@ const makeZoeKit = ( // This method contains the power to create a new ZCF Vat, and must // be closely held. vatAdminSvc is even more powerful - any vat can // be created. We severely restrict access to vatAdminSvc for this reason. - const createZCFVat = setupCreateZCFVat(vatAdminSvc, zcfBundleName); + const createZCFVat = setupCreateZCFVat(vatAdminSvc, zcfBundlecap); // The ZoeStorageManager composes and consolidates capabilities // needed by Zoe according to POLA. diff --git a/packages/zoe/test/swingsetTests/brokenContracts/bootstrap.js b/packages/zoe/test/swingsetTests/brokenContracts/bootstrap.js index 45b80f0e9f9..8b8bf94dd56 100644 --- a/packages/zoe/test/swingsetTests/brokenContracts/bootstrap.js +++ b/packages/zoe/test/swingsetTests/brokenContracts/bootstrap.js @@ -40,12 +40,14 @@ const makeVats = (log, vats, zoe, installations, startingValues) => { }; export function buildRootObject(vatPowers, vatParameters) { + const { D } = vatPowers; return Far('root', { async bootstrap(vats, devices) { const vatAdminSvc = await E(vats.vatAdmin).createVatAdminService( devices.vatAdmin, ); - const zoe = await E(vats.zoe).buildZoe(vatAdminSvc); + const zcfBundlecap = D(devices.bundle).getNamedBundleCap('zcf'); + const zoe = await E(vats.zoe).buildZoe(vatAdminSvc, zcfBundlecap); const installations = { crashAutoRefund: await E(zoe).install(crashingAutoRefund.bundle), }; diff --git a/packages/zoe/test/swingsetTests/brokenContracts/vat-zoe.js b/packages/zoe/test/swingsetTests/brokenContracts/vat-zoe.js index 6295a394fba..19dbdcc7a47 100644 --- a/packages/zoe/test/swingsetTests/brokenContracts/vat-zoe.js +++ b/packages/zoe/test/swingsetTests/brokenContracts/vat-zoe.js @@ -6,9 +6,13 @@ import { makeZoeKit } from '../../../src/zoeService/zoe.js'; export function buildRootObject(vatPowers) { return Far('root', { - buildZoe: vatAdminSvc => { + buildZoe: (vatAdminSvc, zcfBundlecap) => { const shutdownZoeVat = vatPowers.exitVatWithFailure; - const { zoeService: zoe } = makeZoeKit(vatAdminSvc, shutdownZoeVat); + const { zoeService: zoe } = makeZoeKit( + vatAdminSvc, + zcfBundlecap, + shutdownZoeVat, + ); return zoe; }, }); diff --git a/packages/zoe/test/swingsetTests/makeKind/bootstrap.js b/packages/zoe/test/swingsetTests/makeKind/bootstrap.js index ac84152b543..92c55349a51 100644 --- a/packages/zoe/test/swingsetTests/makeKind/bootstrap.js +++ b/packages/zoe/test/swingsetTests/makeKind/bootstrap.js @@ -2,13 +2,15 @@ import { E } from '@agoric/eventual-send'; import { Far } from '@endo/marshal'; export function buildRootObject(vatPowers, vatParameters) { + const { D } = vatPowers; const { contractBundles: cb } = vatParameters; return Far('root', { async bootstrap(vats, devices) { const vatAdminSvc = await E(vats.vatAdmin).createVatAdminService( devices.vatAdmin, ); - const zoe = await E(vats.zoe).buildZoe(vatAdminSvc); + const zcfBundlecap = D(devices.bundle).getNamedBundleCap('zcf'); + const zoe = await E(vats.zoe).buildZoe(vatAdminSvc, zcfBundlecap); const installations = { minimalMakeKind: await E(zoe).install(cb.minimalMakeKindContract), }; diff --git a/packages/zoe/test/swingsetTests/makeKind/vat-zoe.js b/packages/zoe/test/swingsetTests/makeKind/vat-zoe.js index 6295a394fba..19dbdcc7a47 100644 --- a/packages/zoe/test/swingsetTests/makeKind/vat-zoe.js +++ b/packages/zoe/test/swingsetTests/makeKind/vat-zoe.js @@ -6,9 +6,13 @@ import { makeZoeKit } from '../../../src/zoeService/zoe.js'; export function buildRootObject(vatPowers) { return Far('root', { - buildZoe: vatAdminSvc => { + buildZoe: (vatAdminSvc, zcfBundlecap) => { const shutdownZoeVat = vatPowers.exitVatWithFailure; - const { zoeService: zoe } = makeZoeKit(vatAdminSvc, shutdownZoeVat); + const { zoeService: zoe } = makeZoeKit( + vatAdminSvc, + zcfBundlecap, + shutdownZoeVat, + ); return zoe; }, }); diff --git a/packages/zoe/test/swingsetTests/offerArgs/bootstrap.js b/packages/zoe/test/swingsetTests/offerArgs/bootstrap.js index 9cb80993c2a..fd28371db86 100644 --- a/packages/zoe/test/swingsetTests/offerArgs/bootstrap.js +++ b/packages/zoe/test/swingsetTests/offerArgs/bootstrap.js @@ -2,13 +2,15 @@ import { E } from '@agoric/eventual-send'; import { Far } from '@endo/marshal'; export function buildRootObject(vatPowers, vatParameters) { + const { D } = vatPowers; const { contractBundles: cb } = vatParameters; return Far('root', { async bootstrap(vats, devices) { const vatAdminSvc = await E(vats.vatAdmin).createVatAdminService( devices.vatAdmin, ); - const zoe = await E(vats.zoe).buildZoe(vatAdminSvc); + const zcfBundlecap = D(devices.bundle).getNamedBundleCap('zcf'); + const zoe = await E(vats.zoe).buildZoe(vatAdminSvc, zcfBundlecap); const installations = { offerArgsUsageContract: await E(zoe).install(cb.offerArgsUsageContract), }; diff --git a/packages/zoe/test/swingsetTests/offerArgs/vat-zoe.js b/packages/zoe/test/swingsetTests/offerArgs/vat-zoe.js index 6295a394fba..19dbdcc7a47 100644 --- a/packages/zoe/test/swingsetTests/offerArgs/vat-zoe.js +++ b/packages/zoe/test/swingsetTests/offerArgs/vat-zoe.js @@ -6,9 +6,13 @@ import { makeZoeKit } from '../../../src/zoeService/zoe.js'; export function buildRootObject(vatPowers) { return Far('root', { - buildZoe: vatAdminSvc => { + buildZoe: (vatAdminSvc, zcfBundlecap) => { const shutdownZoeVat = vatPowers.exitVatWithFailure; - const { zoeService: zoe } = makeZoeKit(vatAdminSvc, shutdownZoeVat); + const { zoeService: zoe } = makeZoeKit( + vatAdminSvc, + zcfBundlecap, + shutdownZoeVat, + ); return zoe; }, }); diff --git a/packages/zoe/test/swingsetTests/privateArgs/bootstrap.js b/packages/zoe/test/swingsetTests/privateArgs/bootstrap.js index 96a2b00929f..a01070b2831 100644 --- a/packages/zoe/test/swingsetTests/privateArgs/bootstrap.js +++ b/packages/zoe/test/swingsetTests/privateArgs/bootstrap.js @@ -2,13 +2,15 @@ import { E } from '@agoric/eventual-send'; import { Far } from '@endo/marshal'; export function buildRootObject(vatPowers, vatParameters) { + const { D } = vatPowers; const { contractBundles: cb } = vatParameters; return Far('root', { async bootstrap(vats, devices) { const vatAdminSvc = await E(vats.vatAdmin).createVatAdminService( devices.vatAdmin, ); - const zoe = await E(vats.zoe).buildZoe(vatAdminSvc); + const zcfBundlecap = D(devices.bundle).getNamedBundleCap('zcf'); + const zoe = await E(vats.zoe).buildZoe(vatAdminSvc, zcfBundlecap); const installations = { privateArgsUsageContract: await E(zoe).install( cb.privateArgsUsageContract, diff --git a/packages/zoe/test/swingsetTests/privateArgs/vat-zoe.js b/packages/zoe/test/swingsetTests/privateArgs/vat-zoe.js index 6295a394fba..19dbdcc7a47 100644 --- a/packages/zoe/test/swingsetTests/privateArgs/vat-zoe.js +++ b/packages/zoe/test/swingsetTests/privateArgs/vat-zoe.js @@ -6,9 +6,13 @@ import { makeZoeKit } from '../../../src/zoeService/zoe.js'; export function buildRootObject(vatPowers) { return Far('root', { - buildZoe: vatAdminSvc => { + buildZoe: (vatAdminSvc, zcfBundlecap) => { const shutdownZoeVat = vatPowers.exitVatWithFailure; - const { zoeService: zoe } = makeZoeKit(vatAdminSvc, shutdownZoeVat); + const { zoeService: zoe } = makeZoeKit( + vatAdminSvc, + zcfBundlecap, + shutdownZoeVat, + ); return zoe; }, }); diff --git a/packages/zoe/test/swingsetTests/runMint/bootstrap.js b/packages/zoe/test/swingsetTests/runMint/bootstrap.js index cf5bedca3a0..47f4efa6f18 100644 --- a/packages/zoe/test/swingsetTests/runMint/bootstrap.js +++ b/packages/zoe/test/swingsetTests/runMint/bootstrap.js @@ -2,13 +2,18 @@ import { E } from '@agoric/eventual-send'; import { Far } from '@endo/marshal'; export function buildRootObject(vatPowers, vatParameters) { + const { D } = vatPowers; const { contractBundles: cb } = vatParameters; return Far('root', { async bootstrap(vats, devices) { const vatAdminSvc = await E(vats.vatAdmin).createVatAdminService( devices.vatAdmin, ); - const { zoe, feeMintAccess } = await E(vats.zoe).buildZoe(vatAdminSvc); + const zcfBundlecap = D(devices.bundle).getNamedBundleCap('zcf'); + const { zoe, feeMintAccess } = await E(vats.zoe).buildZoe( + vatAdminSvc, + zcfBundlecap, + ); const installations = { runMintContract: await E(zoe).install(cb.runMintContract), offerArgsUsageContract: await E(zoe).install(cb.offerArgsUsageContract), diff --git a/packages/zoe/test/swingsetTests/runMint/vat-zoe.js b/packages/zoe/test/swingsetTests/runMint/vat-zoe.js index e669257b103..c1ca892d7e8 100644 --- a/packages/zoe/test/swingsetTests/runMint/vat-zoe.js +++ b/packages/zoe/test/swingsetTests/runMint/vat-zoe.js @@ -6,10 +6,11 @@ import { makeZoeKit } from '../../../src/zoeService/zoe.js'; export function buildRootObject(vatPowers) { return Far('root', { - buildZoe: async vatAdminSvc => { + buildZoe: async (vatAdminSvc, zcfBundlecap) => { const shutdownZoeVat = vatPowers.exitVatWithFailure; const { zoeService: zoe, feeMintAccess } = makeZoeKit( vatAdminSvc, + zcfBundlecap, shutdownZoeVat, ); return harden({ zoe, feeMintAccess }); diff --git a/packages/zoe/test/swingsetTests/zoe/bootstrap.js b/packages/zoe/test/swingsetTests/zoe/bootstrap.js index f9670907ee2..ccd6ae746ee 100644 --- a/packages/zoe/test/swingsetTests/zoe/bootstrap.js +++ b/packages/zoe/test/swingsetTests/zoe/bootstrap.js @@ -81,13 +81,15 @@ const makeVats = (log, vats, zoe, installations, startingValues) => { }; export function buildRootObject(vatPowers, vatParameters) { + const { D } = vatPowers; const { argv, contractBundles: cb } = vatParameters; return Far('root', { async bootstrap(vats, devices) { const vatAdminSvc = await E(vats.vatAdmin).createVatAdminService( devices.vatAdmin, ); - const zoe = await E(vats.zoe).buildZoe(vatAdminSvc); + const zcfBundlecap = D(devices.bundle).getNamedBundleCap('zcf'); + const zoe = await E(vats.zoe).buildZoe(vatAdminSvc, zcfBundlecap); const installations = { automaticRefund: await E(zoe).install(cb.automaticRefund), coveredCall: await E(zoe).install(cb.coveredCall), diff --git a/packages/zoe/test/swingsetTests/zoe/vat-zoe.js b/packages/zoe/test/swingsetTests/zoe/vat-zoe.js index 6295a394fba..19dbdcc7a47 100644 --- a/packages/zoe/test/swingsetTests/zoe/vat-zoe.js +++ b/packages/zoe/test/swingsetTests/zoe/vat-zoe.js @@ -6,9 +6,13 @@ import { makeZoeKit } from '../../../src/zoeService/zoe.js'; export function buildRootObject(vatPowers) { return Far('root', { - buildZoe: vatAdminSvc => { + buildZoe: (vatAdminSvc, zcfBundlecap) => { const shutdownZoeVat = vatPowers.exitVatWithFailure; - const { zoeService: zoe } = makeZoeKit(vatAdminSvc, shutdownZoeVat); + const { zoeService: zoe } = makeZoeKit( + vatAdminSvc, + zcfBundlecap, + shutdownZoeVat, + ); return zoe; }, }); diff --git a/packages/zoe/test/unitTests/contractSupport/test-depositTo.js b/packages/zoe/test/unitTests/contractSupport/test-depositTo.js index 2c8d52aaf26..7656fc99cf9 100644 --- a/packages/zoe/test/unitTests/contractSupport/test-depositTo.js +++ b/packages/zoe/test/unitTests/contractSupport/test-depositTo.js @@ -9,7 +9,7 @@ import bundleSource from '@endo/bundle-source'; import { setup } from '../setupBasicMints.js'; import { makeZoeKit } from '../../../src/zoeService/zoe.js'; -import { makeFakeVatAdmin } from '../../../tools/fakeVatAdmin.js'; +import { makeFakeVatAdmin, zcfBundlecap } from '../../../tools/fakeVatAdmin.js'; import { depositToSeat } from '../../../src/contractSupport/zoeHelpers.js'; import { makeOffer } from '../makeOffer.js'; @@ -23,7 +23,10 @@ async function setupContract(moolaIssuer, bucksIssuer) { const setJig = jig => { testJig = jig; }; - const { zoeService: zoe } = makeZoeKit(makeFakeVatAdmin(setJig).admin); + const { zoeService: zoe } = makeZoeKit( + makeFakeVatAdmin(setJig).admin, + zcfBundlecap, + ); // pack the contract const bundle = await bundleSource(contractRoot); diff --git a/packages/zoe/test/unitTests/contractSupport/test-offerTo.js b/packages/zoe/test/unitTests/contractSupport/test-offerTo.js index e732ed28480..b7d96b5dc5e 100644 --- a/packages/zoe/test/unitTests/contractSupport/test-offerTo.js +++ b/packages/zoe/test/unitTests/contractSupport/test-offerTo.js @@ -9,7 +9,7 @@ import bundleSource from '@endo/bundle-source'; import { setup } from '../setupBasicMints.js'; import { makeZoeKit } from '../../../src/zoeService/zoe.js'; -import { makeFakeVatAdmin } from '../../../tools/fakeVatAdmin.js'; +import { makeFakeVatAdmin, zcfBundlecap } from '../../../tools/fakeVatAdmin.js'; import { offerTo, assertProposalShape, @@ -27,7 +27,10 @@ const setupContract = async (moolaIssuer, bucksIssuer) => { const setJig = jig => { instanceToZCF.set(jig.instance, jig.zcf); }; - const { zoeService: zoe } = makeZoeKit(makeFakeVatAdmin(setJig).admin); + const { zoeService: zoe } = makeZoeKit( + makeFakeVatAdmin(setJig).admin, + zcfBundlecap, + ); // pack the contract const bundle = await bundleSource(contractRoot); diff --git a/packages/zoe/test/unitTests/contractSupport/test-withdrawFrom.js b/packages/zoe/test/unitTests/contractSupport/test-withdrawFrom.js index b34e1c51534..3cf07dc122f 100644 --- a/packages/zoe/test/unitTests/contractSupport/test-withdrawFrom.js +++ b/packages/zoe/test/unitTests/contractSupport/test-withdrawFrom.js @@ -9,7 +9,7 @@ import bundleSource from '@endo/bundle-source'; import { setup } from '../setupBasicMints.js'; import { makeZoeKit } from '../../../src/zoeService/zoe.js'; -import { makeFakeVatAdmin } from '../../../tools/fakeVatAdmin.js'; +import { makeFakeVatAdmin, zcfBundlecap } from '../../../tools/fakeVatAdmin.js'; import { depositToSeat, withdrawFromSeat, @@ -27,7 +27,10 @@ async function setupContract(moolaIssuer, bucksIssuer) { const setJig = jig => { testJig = jig; }; - const { zoeService: zoe } = makeZoeKit(makeFakeVatAdmin(setJig).admin); + const { zoeService: zoe } = makeZoeKit( + makeFakeVatAdmin(setJig).admin, + zcfBundlecap, + ); // pack the contract const bundle = await bundleSource(contractRoot); diff --git a/packages/zoe/test/unitTests/contracts/attestation/test-attestation.js b/packages/zoe/test/unitTests/contracts/attestation/test-attestation.js index 8814d444bae..5fb8f6f3049 100644 --- a/packages/zoe/test/unitTests/contracts/attestation/test-attestation.js +++ b/packages/zoe/test/unitTests/contracts/attestation/test-attestation.js @@ -12,7 +12,7 @@ import bundleSource from '@endo/bundle-source'; import { E } from '@agoric/eventual-send'; import { makeZoeKit } from '../../../../src/zoeService/zoe.js'; -import fakeVatAdmin from '../../../../tools/fakeVatAdmin.js'; +import { fakeVatAdmin, zcfBundlecap } from '../../../../tools/fakeVatAdmin.js'; const filename = new URL(import.meta.url).pathname; const dirname = path.dirname(filename); @@ -22,7 +22,7 @@ const attestationRoot = `${dirname}/../../../../src/contracts/attestation/attest test('attestation contract basic tests', async t => { const bundle = await bundleSource(attestationRoot); - const { zoeService: zoe } = makeZoeKit(fakeVatAdmin); + const { zoeService: zoe } = makeZoeKit(fakeVatAdmin, zcfBundlecap); const installation = await E(zoe).install(bundle); const bldIssuerKit = makeIssuerKit( diff --git a/packages/zoe/test/unitTests/contracts/test-auction.js b/packages/zoe/test/unitTests/contracts/test-auction.js index f3a916d1a55..3debdfab6e2 100644 --- a/packages/zoe/test/unitTests/contracts/test-auction.js +++ b/packages/zoe/test/unitTests/contracts/test-auction.js @@ -13,7 +13,7 @@ import { makeZoeKit } from '../../../src/zoeService/zoe.js'; import buildManualTimer from '../../../tools/manualTimer.js'; import { setup } from '../setupBasicMints.js'; import { setupMixed } from '../setupMixedMints.js'; -import fakeVatAdmin from '../../../tools/fakeVatAdmin.js'; +import { fakeVatAdmin, zcfBundlecap } from '../../../tools/fakeVatAdmin.js'; const filename = new URL(import.meta.url).pathname; const dirname = path.dirname(filename); @@ -248,7 +248,7 @@ test('zoe - secondPriceAuction w/ 3 bids', async t => { test('zoe - secondPriceAuction - alice tries to exit', async t => { t.plan(12); const { moolaR, simoleanR, moola, simoleans } = setup(); - const { zoeService: zoe } = makeZoeKit(fakeVatAdmin); + const { zoeService: zoe } = makeZoeKit(fakeVatAdmin, zcfBundlecap); // Setup Alice const aliceMoolaPayment = moolaR.mint.mintPayment(moola(1n)); @@ -402,7 +402,7 @@ test('zoe - secondPriceAuction - alice tries to exit', async t => { test('zoe - secondPriceAuction - all bidders try to exit', async t => { t.plan(10); const { moolaR, simoleanR, moola, simoleans } = setup(); - const { zoeService: zoe } = makeZoeKit(fakeVatAdmin); + const { zoeService: zoe } = makeZoeKit(fakeVatAdmin, zcfBundlecap); // Setup Alice const aliceMoolaPayment = moolaR.mint.mintPayment(moola(1n)); diff --git a/packages/zoe/test/unitTests/contracts/test-brokenContract.js b/packages/zoe/test/unitTests/contracts/test-brokenContract.js index 22709aa628f..9b5bb996f04 100644 --- a/packages/zoe/test/unitTests/contracts/test-brokenContract.js +++ b/packages/zoe/test/unitTests/contracts/test-brokenContract.js @@ -10,7 +10,7 @@ import { E } from '@agoric/eventual-send'; import { makeZoeKit } from '../../../src/zoeService/zoe.js'; import { setup } from '../setupBasicMints.js'; -import fakeVatAdmin from '../../../tools/fakeVatAdmin.js'; +import { fakeVatAdmin, zcfBundlecap } from '../../../tools/fakeVatAdmin.js'; const filename = new URL(import.meta.url).pathname; const dirname = path.dirname(filename); @@ -21,7 +21,7 @@ test('zoe - brokenAutomaticRefund', async t => { t.plan(1); // Setup zoe and mints const { moolaR } = setup(); - const { zoeService: zoe } = makeZoeKit(fakeVatAdmin); + const { zoeService: zoe } = makeZoeKit(fakeVatAdmin, zcfBundlecap); // Pack the contract. const bundle = await bundleSource(automaticRefundRoot); const installation = await E(zoe).install(bundle); diff --git a/packages/zoe/test/unitTests/contracts/test-escrowToVote.js b/packages/zoe/test/unitTests/contracts/test-escrowToVote.js index 84aa31d122d..523aa85304d 100644 --- a/packages/zoe/test/unitTests/contracts/test-escrowToVote.js +++ b/packages/zoe/test/unitTests/contracts/test-escrowToVote.js @@ -10,7 +10,7 @@ import { E } from '@agoric/eventual-send'; import { makeZoeKit } from '../../../src/zoeService/zoe.js'; import { setup } from '../setupBasicMints.js'; -import fakeVatAdmin from '../../../tools/fakeVatAdmin.js'; +import { fakeVatAdmin, zcfBundlecap } from '../../../tools/fakeVatAdmin.js'; const filename = new URL(import.meta.url).pathname; const dirname = path.dirname(filename); @@ -20,7 +20,7 @@ const contractRoot = `${dirname}/escrowToVote.js`; test('zoe - escrowToVote', async t => { t.plan(14); const { moolaIssuer, moolaMint, moola } = setup(); - const { zoeService: zoe } = makeZoeKit(fakeVatAdmin); + const { zoeService: zoe } = makeZoeKit(fakeVatAdmin, zcfBundlecap); // pack the contract const bundle = await bundleSource(contractRoot); diff --git a/packages/zoe/test/unitTests/contracts/test-mintPayments.js b/packages/zoe/test/unitTests/contracts/test-mintPayments.js index 7eb689eaea1..36bed9cab18 100644 --- a/packages/zoe/test/unitTests/contracts/test-mintPayments.js +++ b/packages/zoe/test/unitTests/contracts/test-mintPayments.js @@ -7,7 +7,7 @@ import path from 'path'; import bundleSource from '@endo/bundle-source'; import { E } from '@agoric/eventual-send'; import { makeIssuerKit, AmountMath } from '@agoric/ertp'; -import fakeVatAdmin from '../../../tools/fakeVatAdmin.js'; +import { fakeVatAdmin, zcfBundlecap } from '../../../tools/fakeVatAdmin.js'; import { makeZoeKit } from '../../../src/zoeService/zoe.js'; @@ -18,7 +18,7 @@ const mintPaymentsRoot = `${dirname}/../../../src/contracts/mintPayments.js`; test('zoe - mint payments', async t => { t.plan(2); - const { zoeService: zoe } = makeZoeKit(fakeVatAdmin); + const { zoeService: zoe } = makeZoeKit(fakeVatAdmin, zcfBundlecap); const makeAlice = () => { return { @@ -86,7 +86,7 @@ test('zoe - mint payments', async t => { test('zoe - mint payments with unrelated give and want', async t => { t.plan(3); - const { zoeService: zoe } = makeZoeKit(fakeVatAdmin); + const { zoeService: zoe } = makeZoeKit(fakeVatAdmin, zcfBundlecap); const moolaKit = makeIssuerKit('moola'); const simoleanKit = makeIssuerKit('simolean'); diff --git a/packages/zoe/test/unitTests/contracts/test-oracle.js b/packages/zoe/test/unitTests/contracts/test-oracle.js index 3122990366c..e16254010cb 100644 --- a/packages/zoe/test/unitTests/contracts/test-oracle.js +++ b/packages/zoe/test/unitTests/contracts/test-oracle.js @@ -11,7 +11,7 @@ import { Far } from '@endo/marshal'; import { assert, details as X } from '@agoric/assert'; import { E } from '@agoric/eventual-send'; -import { makeFakeVatAdmin } from '../../../tools/fakeVatAdmin.js'; +import { makeFakeVatAdmin, zcfBundlecap } from '../../../tools/fakeVatAdmin.js'; import { makeZoeKit } from '../../../src/zoeService/zoe.js'; import '../../../exported.js'; @@ -37,7 +37,10 @@ test.before( /** @param {ExecutionContext} ot */ async ot => { // Outside of tests, we should use the long-lived Zoe on the // testnet. In this test, we must create a new Zoe. - const { zoeService: zoe } = makeZoeKit(makeFakeVatAdmin().admin); + const { zoeService: zoe } = makeZoeKit( + makeFakeVatAdmin().admin, + zcfBundlecap, + ); // Pack the contract. const contractBundle = await bundleSource(contractPath); diff --git a/packages/zoe/test/unitTests/contracts/test-priceAggregator.js b/packages/zoe/test/unitTests/contracts/test-priceAggregator.js index a026e993372..3602ef54936 100644 --- a/packages/zoe/test/unitTests/contracts/test-priceAggregator.js +++ b/packages/zoe/test/unitTests/contracts/test-priceAggregator.js @@ -12,7 +12,7 @@ import { makeIssuerKit, AssetKind, AmountMath } from '@agoric/ertp'; import { makePromiseKit } from '@agoric/promise-kit'; import { assert } from '@agoric/assert'; -import { makeFakeVatAdmin } from '../../../tools/fakeVatAdmin.js'; +import { makeFakeVatAdmin, zcfBundlecap } from '../../../tools/fakeVatAdmin.js'; import { makeZoeKit } from '../../../src/zoeService/zoe.js'; import buildManualTimer from '../../../tools/manualTimer.js'; @@ -48,7 +48,10 @@ test.before( /** @param {ExecutionContext} ot */ async ot => { // Outside of tests, we should use the long-lived Zoe on the // testnet. In this test, we must create a new Zoe. - const { zoeService: zoe } = makeZoeKit(makeFakeVatAdmin().admin); + const { zoeService: zoe } = makeZoeKit( + makeFakeVatAdmin().admin, + zcfBundlecap, + ); // Pack the contracts. const oracleBundle = await bundleSource(oraclePath); diff --git a/packages/zoe/test/unitTests/contracts/test-priceAggregatorChainlink.js b/packages/zoe/test/unitTests/contracts/test-priceAggregatorChainlink.js index b090678f5f9..1cbdeb1a91c 100644 --- a/packages/zoe/test/unitTests/contracts/test-priceAggregatorChainlink.js +++ b/packages/zoe/test/unitTests/contracts/test-priceAggregatorChainlink.js @@ -10,7 +10,7 @@ import { E } from '@agoric/eventual-send'; import { Far } from '@endo/marshal'; import { makeIssuerKit, AssetKind, AmountMath } from '@agoric/ertp'; -import { makeFakeVatAdmin } from '../../../tools/fakeVatAdmin.js'; +import { makeFakeVatAdmin, zcfBundlecap } from '../../../tools/fakeVatAdmin.js'; import { makeZoeKit } from '../../../src/zoeService/zoe.js'; import buildManualTimer from '../../../tools/manualTimer.js'; @@ -46,7 +46,10 @@ test.before( /** @param {ExecutionContext} ot */ async ot => { // Outside of tests, we should use the long-lived Zoe on the // testnet. In this test, we must create a new Zoe. - const { zoeService: zoe } = makeZoeKit(makeFakeVatAdmin().admin); + const { zoeService: zoe } = makeZoeKit( + makeFakeVatAdmin().admin, + zcfBundlecap, + ); // Pack the contracts. const oracleBundle = await bundleSource(oraclePath); diff --git a/packages/zoe/test/unitTests/contracts/test-sellTickets.js b/packages/zoe/test/unitTests/contracts/test-sellTickets.js index 4e3e2521278..014688a7dbb 100644 --- a/packages/zoe/test/unitTests/contracts/test-sellTickets.js +++ b/packages/zoe/test/unitTests/contracts/test-sellTickets.js @@ -8,7 +8,7 @@ import { assert } from '@agoric/assert'; import bundleSource from '@endo/bundle-source'; import { makeIssuerKit, AmountMath, isSetValue } from '@agoric/ertp'; import { E } from '@agoric/eventual-send'; -import fakeVatAdmin from '../../../tools/fakeVatAdmin.js'; +import { fakeVatAdmin, zcfBundlecap } from '../../../tools/fakeVatAdmin.js'; import { makeZoeKit } from '../../../src/zoeService/zoe.js'; import { defaultAcceptanceMsg } from '../../../src/contractSupport/index.js'; @@ -21,7 +21,7 @@ const sellItemsRoot = `${dirname}/../../../src/contracts/sellItems.js`; test(`mint and sell tickets for multiple shows`, async t => { // Setup initial conditions - const { zoeService: zoe } = makeZoeKit(fakeVatAdmin); + const { zoeService: zoe } = makeZoeKit(fakeVatAdmin, zcfBundlecap); const mintAndSellNFTBundle = await bundleSource(mintAndSellNFTRoot); const mintAndSellNFTInstallation = await E(zoe).install(mintAndSellNFTBundle); @@ -145,7 +145,7 @@ test(`mint and sell opera tickets`, async t => { const moola = value => AmountMath.make(moolaBrand, value); - const { zoeService: zoe } = makeZoeKit(fakeVatAdmin); + const { zoeService: zoe } = makeZoeKit(fakeVatAdmin, zcfBundlecap); const mintAndSellNFTBundle = await bundleSource(mintAndSellNFTRoot); const mintAndSellNFTInstallation = await E(zoe).install(mintAndSellNFTBundle); @@ -538,7 +538,7 @@ test(`mint and sell opera tickets`, async t => { // test('Testing publicFacet.getAvailableItemsNotifier()', async t => { // Setup initial conditions - const { zoeService: zoe } = makeZoeKit(fakeVatAdmin); + const { zoeService: zoe } = makeZoeKit(fakeVatAdmin, zcfBundlecap); const mintAndSellNFTBundle = await bundleSource(mintAndSellNFTRoot); const mintAndSellNFTInstallation = await E(zoe).install(mintAndSellNFTBundle); diff --git a/packages/zoe/test/unitTests/contracts/test-throwInOfferHandler.js b/packages/zoe/test/unitTests/contracts/test-throwInOfferHandler.js index 69a14b1990f..3051fe623ad 100644 --- a/packages/zoe/test/unitTests/contracts/test-throwInOfferHandler.js +++ b/packages/zoe/test/unitTests/contracts/test-throwInOfferHandler.js @@ -8,7 +8,7 @@ import bundleSource from '@endo/bundle-source'; import { E } from '@agoric/eventual-send'; import { makeZoeKit } from '../../../src/zoeService/zoe.js'; -import fakeVatAdmin from '../../../tools/fakeVatAdmin.js'; +import { fakeVatAdmin, zcfBundlecap } from '../../../tools/fakeVatAdmin.js'; const filename = new URL(import.meta.url).pathname; const dirname = path.dirname(filename); @@ -16,7 +16,7 @@ const dirname = path.dirname(filename); const contractRoot = `${dirname}/throwInOfferHandler.js`; test('throw in offerHandler', async t => { - const { zoeService: zoe } = makeZoeKit(fakeVatAdmin); + const { zoeService: zoe } = makeZoeKit(fakeVatAdmin, zcfBundlecap); // pack the contract const bundle = await bundleSource(contractRoot); diff --git a/packages/zoe/test/unitTests/contracts/test-useObj.js b/packages/zoe/test/unitTests/contracts/test-useObj.js index 74feeb0d772..3e81a40a2de 100644 --- a/packages/zoe/test/unitTests/contracts/test-useObj.js +++ b/packages/zoe/test/unitTests/contracts/test-useObj.js @@ -9,7 +9,7 @@ import bundleSource from '@endo/bundle-source'; import { E } from '@agoric/eventual-send'; import { makeZoeKit } from '../../../src/zoeService/zoe.js'; import { setup } from '../setupBasicMints.js'; -import fakeVatAdmin from '../../../tools/fakeVatAdmin.js'; +import { fakeVatAdmin, zcfBundlecap } from '../../../tools/fakeVatAdmin.js'; const filename = new URL(import.meta.url).pathname; const dirname = path.dirname(filename); @@ -19,7 +19,7 @@ const contractRoot = `${dirname}/useObjExample.js`; test('zoe - useObj', async t => { t.plan(3); const { moolaIssuer, moolaMint, moola } = setup(); - const { zoeService: zoe } = makeZoeKit(fakeVatAdmin); + const { zoeService: zoe } = makeZoeKit(fakeVatAdmin, zcfBundlecap); // pack the contract const bundle = await bundleSource(contractRoot); diff --git a/packages/zoe/test/unitTests/setupBasicMints.js b/packages/zoe/test/unitTests/setupBasicMints.js index f734122556f..3ee2961f57a 100644 --- a/packages/zoe/test/unitTests/setupBasicMints.js +++ b/packages/zoe/test/unitTests/setupBasicMints.js @@ -3,7 +3,7 @@ import { makeIssuerKit, AmountMath } from '@agoric/ertp'; import { makeStore } from '@agoric/store'; import { makeZoeKit } from '../../src/zoeService/zoe.js'; -import fakeVatAdmin from '../../tools/fakeVatAdmin.js'; +import { fakeVatAdmin, zcfBundlecap } from '../../tools/fakeVatAdmin.js'; const setup = () => { const moolaBundle = makeIssuerKit('moola'); @@ -21,7 +21,7 @@ const setup = () => { brands.init(k, allBundles[k].brand); } - const { zoeService: zoe } = makeZoeKit(fakeVatAdmin); + const { zoeService: zoe } = makeZoeKit(fakeVatAdmin, zcfBundlecap); /** @type {(brand: Brand) => (value: AmountValue) => Amount} */ const makeSimpleMake = brand => value => AmountMath.make(brand, value); diff --git a/packages/zoe/test/unitTests/setupMixedMints.js b/packages/zoe/test/unitTests/setupMixedMints.js index be6ac9abb26..c9dbc558cc4 100644 --- a/packages/zoe/test/unitTests/setupMixedMints.js +++ b/packages/zoe/test/unitTests/setupMixedMints.js @@ -2,7 +2,7 @@ import { makeIssuerKit, AmountMath, AssetKind } from '@agoric/ertp'; import { makeZoeKit } from '../../src/zoeService/zoe.js'; -import fakeVatAdmin from '../../tools/fakeVatAdmin.js'; +import { fakeVatAdmin, zcfBundlecap } from '../../tools/fakeVatAdmin.js'; const setupMixed = () => { const ccBundle = makeIssuerKit('CryptoCats', AssetKind.SET); @@ -25,7 +25,7 @@ const setupMixed = () => { const cryptoCats = value => AmountMath.make(allBundles.cc.brand, value); const moola = value => AmountMath.make(allBundles.moola.brand, value); - const { zoeService: zoe } = makeZoeKit(fakeVatAdmin); + const { zoeService: zoe } = makeZoeKit(fakeVatAdmin, zcfBundlecap); return { zoe, ccIssuer, diff --git a/packages/zoe/test/unitTests/setupNonFungibleMints.js b/packages/zoe/test/unitTests/setupNonFungibleMints.js index 22adb102956..ee551274765 100644 --- a/packages/zoe/test/unitTests/setupNonFungibleMints.js +++ b/packages/zoe/test/unitTests/setupNonFungibleMints.js @@ -2,7 +2,7 @@ import { makeIssuerKit, AmountMath, AssetKind } from '@agoric/ertp'; import { makeZoeKit } from '../../src/zoeService/zoe.js'; -import fakeVatAdmin from '../../tools/fakeVatAdmin.js'; +import { fakeVatAdmin, zcfBundlecap } from '../../tools/fakeVatAdmin.js'; const setupNonFungible = () => { const ccBundle = makeIssuerKit('CryptoCats', AssetKind.SET); @@ -24,7 +24,7 @@ const setupNonFungible = () => { function createRpgItem(name, power, desc = undefined) { return harden([{ name, description: desc || name, power }]); } - const { zoeService: zoe } = makeZoeKit(fakeVatAdmin); + const { zoeService: zoe } = makeZoeKit(fakeVatAdmin, zcfBundlecap); const ccIssuer = ccBundle.issuer; const rpgIssuer = rpgBundle.issuer; diff --git a/packages/zoe/test/unitTests/test-makeKind.js b/packages/zoe/test/unitTests/test-makeKind.js index 01a0fc39b0a..77f470b4316 100644 --- a/packages/zoe/test/unitTests/test-makeKind.js +++ b/packages/zoe/test/unitTests/test-makeKind.js @@ -9,7 +9,7 @@ import bundleSource from '@endo/bundle-source'; import { E } from '@agoric/eventual-send'; import { makeZoeKit } from '../../src/zoeService/zoe.js'; -import fakeVatAdmin from '../../tools/fakeVatAdmin.js'; +import { fakeVatAdmin, zcfBundlecap } from '../../tools/fakeVatAdmin.js'; const filename = new URL(import.meta.url).pathname; const dirname = path.dirname(filename); @@ -18,7 +18,7 @@ const root = `${dirname}/../minimalMakeKindContract.js`; test('makeKind non-swingset', async t => { const bundle = await bundleSource(root); - const { zoeService: zoe } = makeZoeKit(fakeVatAdmin); + const { zoeService: zoe } = makeZoeKit(fakeVatAdmin, zcfBundlecap); const installation = await E(zoe).install(bundle); t.notThrows(() => VatData.makeKind()); t.notThrows(() => VatData.makeDurableKind()); diff --git a/packages/zoe/test/unitTests/test-scriptedOracle.js b/packages/zoe/test/unitTests/test-scriptedOracle.js index 3e622c00909..d2ed9712148 100644 --- a/packages/zoe/test/unitTests/test-scriptedOracle.js +++ b/packages/zoe/test/unitTests/test-scriptedOracle.js @@ -9,7 +9,7 @@ import bundleSource from '@endo/bundle-source'; import { E } from '@agoric/eventual-send'; import { assert } from '@agoric/assert'; -import { makeFakeVatAdmin } from '../../tools/fakeVatAdmin.js'; +import { makeFakeVatAdmin, zcfBundlecap } from '../../tools/fakeVatAdmin.js'; import { makeZoeKit } from '../../src/zoeService/zoe.js'; import '../../exported.js'; @@ -44,7 +44,10 @@ test.before( /** @param {ExecutionContext} ot */ async ot => { // Outside of tests, we should use the long-lived Zoe on the // testnet. In this test, we must create a new Zoe. - const { zoeService: zoe } = makeZoeKit(makeFakeVatAdmin().admin); + const { zoeService: zoe } = makeZoeKit( + makeFakeVatAdmin().admin, + zcfBundlecap, + ); const oracleContractBundle = await bundleSource(oracleContractPath); const bountyContractBundle = await bundleSource(bountyContractPath); diff --git a/packages/zoe/test/unitTests/zcf/setupZcfTest.js b/packages/zoe/test/unitTests/zcf/setupZcfTest.js index f5cfb354f97..39814ff59db 100644 --- a/packages/zoe/test/unitTests/zcf/setupZcfTest.js +++ b/packages/zoe/test/unitTests/zcf/setupZcfTest.js @@ -7,7 +7,7 @@ import { assert } from '@agoric/assert'; import path from 'path'; import { makeZoeKit } from '../../../src/zoeService/zoe.js'; -import { makeFakeVatAdmin } from '../../../tools/fakeVatAdmin.js'; +import { makeFakeVatAdmin, zcfBundlecap } from '../../../tools/fakeVatAdmin.js'; const filename = new URL(import.meta.url).pathname; const dirname = path.dirname(filename); @@ -33,7 +33,10 @@ export const setupZCFTest = async (issuerKeywordRecord, terms) => { }; // The contract provides the `zcf` via `setTestJig` upon `start`. const fakeVatAdmin = makeFakeVatAdmin(setZCF); - const { zoeService: zoe, feeMintAccess } = makeZoeKit(fakeVatAdmin.admin); + const { zoeService: zoe, feeMintAccess } = makeZoeKit( + fakeVatAdmin.admin, + zcfBundlecap, + ); const bundle = await bundleSource(contractRoot); const installation = await E(zoe).install(bundle); const { creatorFacet, instance } = await E(zoe).startInstance( diff --git a/packages/zoe/test/unitTests/zcf/test-feeMintAccess.js b/packages/zoe/test/unitTests/zcf/test-feeMintAccess.js index 080843ec26b..97e0a9508a4 100644 --- a/packages/zoe/test/unitTests/zcf/test-feeMintAccess.js +++ b/packages/zoe/test/unitTests/zcf/test-feeMintAccess.js @@ -11,7 +11,7 @@ import { AmountMath } from '@agoric/ertp'; import bundleSource from '@endo/bundle-source'; import { makeZoeKit } from '../../../src/zoeService/zoe.js'; -import fakeVatAdmin from '../../../tools/fakeVatAdmin.js'; +import { fakeVatAdmin, zcfBundlecap } from '../../../tools/fakeVatAdmin.js'; const filename = new URL(import.meta.url).pathname; const dirname = path.dirname(filename); @@ -19,7 +19,10 @@ const dirname = path.dirname(filename); const contractRoot = `${dirname}/registerFeeMintContract.js`; test(`feeMintAccess`, async t => { - const { zoeService: zoe, feeMintAccess } = makeZoeKit(fakeVatAdmin); + const { zoeService: zoe, feeMintAccess } = makeZoeKit( + fakeVatAdmin, + zcfBundlecap, + ); const bundle = await bundleSource(contractRoot); const installation = await E(zoe).install(bundle); const { creatorFacet } = await E(zoe).startInstance( diff --git a/packages/zoe/test/unitTests/zcf/test-zcfSeat-exit.js b/packages/zoe/test/unitTests/zcf/test-zcfSeat-exit.js index 71093444ce6..1ddea5d6ccd 100644 --- a/packages/zoe/test/unitTests/zcf/test-zcfSeat-exit.js +++ b/packages/zoe/test/unitTests/zcf/test-zcfSeat-exit.js @@ -9,7 +9,7 @@ import bundleSource from '@endo/bundle-source'; import { makeZoeKit } from '../../../src/zoeService/zoe.js'; import { setup } from '../setupBasicMints.js'; -import { makeFakeVatAdmin } from '../../../tools/fakeVatAdmin.js'; +import { makeFakeVatAdmin, zcfBundlecap } from '../../../tools/fakeVatAdmin.js'; import '../../../exported.js'; @@ -28,7 +28,7 @@ test(`zoe - wrongly throw zcfSeat.exit()`, async t => { testJig = jig; }; const { admin: fakeVatAdminSvc, vatAdminState } = makeFakeVatAdmin(setJig); - const { zoeService: zoe } = makeZoeKit(fakeVatAdminSvc); + const { zoeService: zoe } = makeZoeKit(fakeVatAdminSvc, zcfBundlecap); // pack the contract const bundle = await bundleSource(contractRoot); diff --git a/packages/zoe/test/unitTests/zcf/test-zcfSeat.js b/packages/zoe/test/unitTests/zcf/test-zcfSeat.js index 0f96951cb3c..21c5586ef09 100644 --- a/packages/zoe/test/unitTests/zcf/test-zcfSeat.js +++ b/packages/zoe/test/unitTests/zcf/test-zcfSeat.js @@ -9,7 +9,7 @@ import bundleSource from '@endo/bundle-source'; import { makeZoeKit } from '../../../src/zoeService/zoe.js'; import { setup } from '../setupBasicMints.js'; -import { makeFakeVatAdmin } from '../../../tools/fakeVatAdmin.js'; +import { makeFakeVatAdmin, zcfBundlecap } from '../../../tools/fakeVatAdmin.js'; import '../../../exported.js'; @@ -25,7 +25,7 @@ test(`zoe - zcfSeat.fail() doesn't throw`, async t => { testJig = jig; }; const { admin: fakeVatAdminSvc, vatAdminState } = makeFakeVatAdmin(setJig); - const { zoeService: zoe } = makeZoeKit(fakeVatAdminSvc); + const { zoeService: zoe } = makeZoeKit(fakeVatAdminSvc, zcfBundlecap); // pack the contract const bundle = await bundleSource(contractRoot); diff --git a/packages/zoe/test/unitTests/zoe/test-createZCFVat.js b/packages/zoe/test/unitTests/zoe/test-createZCFVat.js index 5c1570be8da..bdddc9efbaa 100644 --- a/packages/zoe/test/unitTests/zoe/test-createZCFVat.js +++ b/packages/zoe/test/unitTests/zoe/test-createZCFVat.js @@ -11,22 +11,16 @@ test('setupCreateZCFVat', async t => { // This is difficult to unit test, since the real functionality // creates a new vat + const zcfBundlecap = Far('zcfBundlecap', {}); const fakeVatAdminSvc = Far('fakeVatAdminSvc', { - createVatByName: _name => { - return harden({ adminNode: undefined, root: undefined }); - }, - createVat: _bundle => { + createVat: bundlecap => { + assert.equal(bundlecap, zcfBundlecap); return harden({ adminNode: undefined, root: undefined }); }, }); // @ts-ignore fakeVatAdminSvc is mocked - t.deepEqual(await setupCreateZCFVat(fakeVatAdminSvc, undefined)(), { - adminNode: undefined, - root: undefined, - }); - // @ts-ignore fakeVatAdminSvc is mocked - t.deepEqual(await setupCreateZCFVat(fakeVatAdminSvc, 'myVat')(), { + t.deepEqual(await setupCreateZCFVat(fakeVatAdminSvc, zcfBundlecap)(), { adminNode: undefined, root: undefined, }); diff --git a/packages/zoe/tools/fakeVatAdmin.js b/packages/zoe/tools/fakeVatAdmin.js index 9a27cbfd789..130d57db5ac 100644 --- a/packages/zoe/tools/fakeVatAdmin.js +++ b/packages/zoe/tools/fakeVatAdmin.js @@ -9,6 +9,9 @@ import { evalContractBundle } from '../src/contractFacet/evalContractCode.js'; import { handlePKitWarning } from '../src/handleWarning.js'; import zcfContractBundle from '../bundles/bundle-contractFacet.js'; +// this simulates a bundlecap, which is normally a swingset "device node" +export const zcfBundlecap = Far('zcfBundlecap', {}); + /** * @param { (...args) => unknown } [testContextSetter] * @param { (x: unknown) => unknown } [makeRemote] @@ -36,7 +39,9 @@ function makeFakeVatAdmin(testContextSetter = undefined, makeRemote = x => x) { // test-only state can be provided from contracts // to their tests. const admin = Far('vatAdmin', { - createVat: bundle => { + createVat: bundlecap => { + assert.equal(bundlecap, zcfBundlecap, 'fakeVatAdmin only creates ZCF'); + const bundle = zcfContractBundle; return harden({ root: makeRemote( E(evalContractBundle(bundle)).buildRootObject( @@ -55,10 +60,6 @@ function makeFakeVatAdmin(testContextSetter = undefined, makeRemote = x => x) { }), }); }, - createVatByName: name => { - assert.equal(name, 'zcf', `only name='zcf' accepted, not ${name}`); - return admin.createVat(zcfContractBundle); - }, }); const vatAdminState = { getExitMessage: () => exitMessage, @@ -71,4 +72,4 @@ function makeFakeVatAdmin(testContextSetter = undefined, makeRemote = x => x) { const fakeVatAdmin = makeFakeVatAdmin().admin; export default fakeVatAdmin; -export { makeFakeVatAdmin }; +export { makeFakeVatAdmin, fakeVatAdmin };