Context
Sub-task of #12719 (remove @agoric/inter-protocol). Splitting this out because it is a design decision with production-bootstrap impact, not a mechanical edit.
The blocker
The checklist item "Remove Inter Protocol from chain configs" (vm-config decentral-{main,test,itest}-vaults, demo, devnet, itest-orchestration) looks like deleting @agoric/builders/scripts/inter-protocol/* entries from the coreProposals arrays. But inter-protocol/init-core.js (with econCommitteeOptions) is what starts the economicCommittee, and:
provisionPool is started via startGovernedUpgradable in packages/vats/src/core/startWalletFactory.js.
startGovernedUpgradable does await economicCommitteeCreatorFacet (packages/vats/src/core/basic-behaviors.js:322).
- The economicCommittee is produced only by
packages/inter-protocol/src/proposals/startEconCommittee.js.
- Even the BLD migration
packages/vats/src/proposals/upgrade-provisionPool-to-BLD-proposal.js still calls E(electorateCreatorFacet).getPoserInvitation() — provisionPool stays a governed contract requiring the electorate in every form.
So removing init-core.js from the configs makes provisionPool's governed start await forever → bootstrap hangs (not a clean failure). provisionPool is the sole remaining bootstrap consumer of the economicCommittee once IP is gone; all other consumers (upgrade-psm, upgrade-asset-reserve, committee-proposal, replaceElectorate) are IP and die with the package.
Already-done prerequisites do not cover this: #11866 moved provisionPool to @agoric/vats and made credit BLD-denominated, and the econCharterKit wiring was removed from startWalletFactory.js, but neither detaches provisionPool from the economicCommittee electorate.
Options
- Ungovern provisionPool — convert to a non-governed
startUpgradable start; PerAccountInitialAmount becomes a plain term / creatorFacet setter. Truest to the sunset goal ("don't relocate pieces"); requires a contract change + a governed→ungoverned upgrade handler for existing chains.
- Minimal committee in vats — relocate a small
startEconCommittee into @agoric/vats so provisionPool stays governed unchanged. Lowest churn, unblocks config edits immediately, but relocates a piece.
- Other (e.g. reconsider whether provisionPool needs a governed
PerAccountInitialAmount at all).
Blocks
Context
Sub-task of #12719 (remove
@agoric/inter-protocol). Splitting this out because it is a design decision with production-bootstrap impact, not a mechanical edit.The blocker
The checklist item "Remove Inter Protocol from chain configs" (
vm-configdecentral-{main,test,itest}-vaults, demo, devnet, itest-orchestration) looks like deleting@agoric/builders/scripts/inter-protocol/*entries from thecoreProposalsarrays. Butinter-protocol/init-core.js(witheconCommitteeOptions) is what starts the economicCommittee, and:provisionPoolis started viastartGovernedUpgradableinpackages/vats/src/core/startWalletFactory.js.startGovernedUpgradabledoesawait economicCommitteeCreatorFacet(packages/vats/src/core/basic-behaviors.js:322).packages/inter-protocol/src/proposals/startEconCommittee.js.packages/vats/src/proposals/upgrade-provisionPool-to-BLD-proposal.jsstill callsE(electorateCreatorFacet).getPoserInvitation()— provisionPool stays a governed contract requiring the electorate in every form.So removing
init-core.jsfrom the configs makes provisionPool's governed start await forever → bootstrap hangs (not a clean failure).provisionPoolis the sole remaining bootstrap consumer of the economicCommittee once IP is gone; all other consumers (upgrade-psm,upgrade-asset-reserve,committee-proposal,replaceElectorate) are IP and die with the package.Already-done prerequisites do not cover this: #11866 moved provisionPool to
@agoric/vatsand made credit BLD-denominated, and theeconCharterKitwiring was removed fromstartWalletFactory.js, but neither detaches provisionPool from the economicCommittee electorate.Options
startUpgradablestart;PerAccountInitialAmountbecomes a plain term / creatorFacet setter. Truest to the sunset goal ("don't relocate pieces"); requires a contract change + a governed→ungoverned upgrade handler for existing chains.startEconCommitteeinto@agoric/vatsso provisionPool stays governed unchanged. Lowest churn, unblocks config edits immediately, but relocates a piece.PerAccountInitialAmountat all).Blocks
z:acceptanceP2 (thewallet.test.jsuist→ubldrework rides on the config removal)