包详细信息

@agoric/vats

Agoric7.4kApache-2.00.16.0-u21.0

Agoric's Vat library

自述文件

banner-1500x500

Agoric Platform SDK

unit tests status integration tests status license

This repository contains most of the packages that make up the upper layers of the Agoric platform, with the endo repository providing the lower layers. If you want to build on top of this platform, you don't need these repositories: instead you should follow our instructions for getting started with the Agoric SDK.

But if you are improving the platform itself, these are the repositories to use.

Prerequisites

Prerequisites are enforced in various places that should be kept synchronized with this section (e.g., repoconfig.sh defines golang_version_check and nodejs_version_check shell functions).

  • Git
  • Go ^1.22.12
  • Node.js ^20.9 or ^22.11
    • we generally support the latest LTS release: use nvm to keep your local system up-to-date
  • Yarn (npm install -g yarn)
  • gcc >=10, clang >=10, or another compiler with __has_builtin()

Any version of Yarn will do: the .yarnrc file should ensure that all commands use the specific checked-in version of Yarn (stored in .yarn/releases/), which we can update later with PRs in conjunction with any necessary compatibility fixes to our package.json files.

Building on Apple Silicon and Newer Architectures

Some dependencies may not be prebuilt for Apple Silicon and other newer architectures, so it may be necessary to build these dependencies from source and install that package’s native dependencies with your package manager (e.g. Homebrew).

Currently these dependencies are:

Additionally, if your package manager utilizes a non-standard include path, you may also need to export the following environment variable before running the commands in the Build section.

export CPLUS_INCLUDE_PATH=/opt/homebrew/include

Finally, you will need the native build toolchain installed to build these items from source.

xcode-select --install

Build

From a new checkout of this repository, run:

yarn install
yarn build

When the yarn install is done, the top-level node_modules/ will contain all the shared dependencies, and each subproject's node_modules/ should contain only the dependencies that are unique to that subproject (e.g. when the version installed at the top level does not meet the subproject's constraints). Our goal is to remove all the unique-to-a-subproject deps.

When one subproject depends upon another, node_modules/ will contain a symlink to the subproject (e.g. ERTP depends upon marshal, so node_modules/@endo/marshal is a symlink to packages/marshal).

Run yarn workspaces info to get a report on which subprojects (aka "workspaces") depend upon which others. The mismatchedWorkspaceDependencies section tells us when symlinks could not be used (generally because e.g. ERTP wants marshal@0.1.0, but packages/marshal/package.json says it's actually 0.2.0). We want to get rid of all mismatched dependencies.

The yarn build step generates kernel bundles.

Test

To run all unit tests (in all packages):

  • yarn test (from the top-level)

To run the unit tests of just a single package (e.g. eventual-send):

  • cd packages/eventual-send
  • yarn test

Run the larger demo

Visit https://docs.agoric.com for getting started instructions.

TL;DR:

  • yarn link-cli ~/bin/agoric
  • cd ~
  • agoric init foo
  • cd foo
  • agoric install
  • agoric start

Then browse to http://localhost:8000

Edit Loop

  • modify something in e.g. zoe/
  • run yarn build (at the top level or in zoe/)
  • re-run tests or agoric start --reset
  • repeat

Doing a yarn build in zoe creates the "contract facet bundle", a single file that rolls up all the Zoe contract vat sources. This bundle file is needed by all zoe contracts before they can invoke zoe~.install(...). If you don't run yarn build, then changes to the Zoe contract facet will be ignored.

Development Standards

  • All work should happen on branches. Single-commit branches can land on trunk without a separate merge, but multi-commit branches should have a separate merge commit. The merge commit subject should mention which packages were modified (e.g. (SwingSet,cosmic-swingset) merge 123-fix-persistence)
  • Keep the history tidy. Avoid overlapping branches. Rebase when necessary.
  • All work should have an Issue. All branches names should include the issue number as a prefix (e.g. 123-description). Use "Labels" on the Issues to mark which packages are affected.
  • Add user-visible changes to a new file in the changelogs/ directory, named after the Issue number. See the README in those directories for instructions.
  • Unless the issue spans multiple packages, each branch should only modify a single package.
  • Releases should be made as according to MAINTAINERS.md.

更新日志

Change Log

All notable changes to this project will be documented in this file. See Conventional Commits for commit guidelines.

0.16.0-u21.0 (2025-06-19)

⚠ BREAKING CHANGES

  • solo: remove sim-chain dependency
  • network: improve naming and data coercion
  • localchain: make localchain.query and queryMany useful
  • make Network and IBC vats durable (#8721)
  • zone: use fresh heap and virtual zones

Features

  • add upgrade zcf only proposal (73e0bb8)
  • CapDataShape, StreamCellShape guards (e60dd49)
  • Complete IBCMethodEvents type definitions with IBC method parameters (2676f98)
  • coreEval to update priceFeeds, auction, and vaultManager (fd91f78)
  • cosmic-swingset: Add support for testing blocks of a mock chain (48b6405)
  • cosmos: add Reserve withdrawal upgrade (9e97cbd)
  • cosmos: wire new swingset port handler (ea582bf)
  • export fakeLocalChainBridgeTxHandler (7cd5c43)
  • fake bank bridge (9abd093)
  • getBridgeId on ScopedBridgeManager (aec4dea)
  • ibc: add types for IBCEvent, IBCMethod, IBCDowncall, and IBCDowncallPacket (54fc93c)
  • ibc: export validateRemoteIbcAddress address (2c29c08)
  • ibc: support async IBC version negotiation when present (6efe80a)
  • initChainInfo in orchestration setup eval (5913d8f)
  • inspect fake bank bridge messages (d8a78d4)
  • internal: fakeStorage.getBody() supports index other than -1 (eda89cc)
  • lca: getBalance (bd0708b)
  • lca: undelegate (a18d21c)
  • localchain: add .transfer() helper to LocalChainAccount (fd11145)
  • localchain: add bankManager powers if present (5b789c5)
  • localchain: add withdraw facet to localChainAccount (da20cb6)
  • localchain: make localchain.query and queryMany useful (41209d5)
  • localchain: per-account interception of vtransfer (07e6d87)
  • localOrchAccount.getBalance queries non-vbank assets (1938ecd)
  • make Network and IBC vats durable (#8721) (3d13c09)
  • make vat-localchain resumable (76c17c6)
  • new 'boot' package with bootstrap configs (8e3173b)
  • orchestration: add stakeAtom example contract (82f1901)
  • orchestration: localChainAccountKit returns unwrapped vows (33085ff)
  • repair KREAd contract on zoe upgrade (84dd229)
  • repl: deal with Vows (6991c7b)
  • smart-wallet: accept Vow for offerResult (933ab29), closes #9308
  • stakeBld contract (a7e30a4)
  • start fn upgradability by meta (5ae46e4)
  • support coreProposals.steps (80fa3d1)
  • swingset-liveslots: endow passStyleOf to liveslots guest compartment (#9874) (b6c58f2), closes #9431 #9431 #9781 #9431 #9431
  • typedJson (cd151b7)
  • types: ContractMeta (9d02dfa)
  • types: coreEvalEnv (3764eee)
  • types: explicit exports from network (65c2075)
  • types: generic Instance (9a0359a)
  • types: generic return for executeTx (dfc830b)
  • types: loadVat WellKnownVats (efdf39f)
  • types: parameterize NameHub (6110c6a)
  • types: update IBC types to match x/vibc, x/vtranfsfer module specifications (c9c55c5)
  • types: WellKnownSpaces['instance'] (72b3b76)
  • undelegate: use Timestamp instead of Date (3d4ab30)
  • upgrade v7-board and test it (#10516) (d8a109e), closes #10394
  • vat-transfer: first cut at working proposal (2864bd5)
  • vats: BRIDGE_TARGET_REGISTER and BRIDGE_TARGET_UNREGISTER (badf695)
  • vats: Add success output to terminate-governed-instance.js core-evals (#11384) (f9483e7), closes #11274 #11274
  • vats: decouple walletFactory from inter-protocol (6c3e891)
  • vats: provide init-localchain (19e5aed)
  • vats: upgrade the orchestration core (c2d9530)
  • vault performance benchmark (57cea7d)
  • vlocalchain: generalise tx and query implementation (1bffe84)
  • Zoe use watchPromise() to wait for contract finish (#8453) (6388a00)
  • zone: use fresh heap and virtual zones (7a1a411)

Bug Fixes

  • adopt VTRANSFER_IBC_EVENT as an action-type (#9671) (217005a), closes #9670
  • eliminate the passableEncoding hack (87dbbda), closes #8327
  • endow with original unstructured assert (#9514) (f908f89), closes #9515 #5672 #8332 #9513 #5672 #8332 #9513 #9515 #5672 #5672 #9513 #9513
  • ensure script main rejections exit with error (abdab87)
  • ERTP,vats: fix 9407 AmountPatternShape (#9863) (59b1a9f), closes #9410 #9407 #9410 #9407 #9410 #9407 #9410
  • fake-bridge: use when to handle vows (8907806)
  • localchain: callWhens return PromiseVow (b5cf8bd)
  • localchain: work around TypeScript mapped tuple bug (90e062c)
  • many typing improvements (777eb21)
  • nameHub: void some floating promises (70aa007)
  • network: Connection should have negotiated remoteAddress and localAddress (2184ea3), closes #9064
  • network: create and use coerceToData (39beecb)
  • network: improve naming and data coercion (8bcd9e2)
  • network: introduce Finalizer to close network (54b9b00)
  • network: use vow types, correct revealed problems (d1c1240)
  • nonce handling in vbank (01ee862)
  • parseQueryPacket should use ResponseQuery.toJSON (0bd7161)
  • proposals: Drop private arg "metricsOverride" when upgrading provisionPool (ad411c8)
  • provisioning: don't use disconnected namesByAddress (84d74dd)
  • repair storage of zcfBundleCap and add a3p test (72c7574)
  • solo: remove sim-chain dependency (da75a03)
  • tools: VBANK_GRAB insufficient funds error message (c09d4f4)
  • tools: fake localchain bridge MsgTransfer error (61c7bff)
  • types: board (c73f4f9)
  • types: board values (4196da3)
  • types: deposit accepts ERef (0242e09)
  • types: errors detected with libcheck (077240b)
  • types: problems hidden by skipLibCheck (6a6e595)
  • types: template syntax (279b903)
  • types: Zoe utils hidden by skipLibCheck (2f17f89)
  • update for [@jessie](https://github.com/jessie).js/safe-await-separator (94c6b3c)
  • vat-bank: allow numeric or string nonces (b2590be)
  • vats: vat-transfer and bridge-target rework (1be5003)
  • vats: vtransfer code cleanup (8ac8197)
  • vats: avoid needless mutation on producer.reset() (0f338e5)
  • vats: don't give all of bankManager to 1 account (d1f1630)
  • vats: explicitly harden iteration helper prototype (5c00e86)
  • vats: include index.js in NPM package (#8815) (c132a31)
  • vats: migrate IBC sequences and clear unused ackKits (82f45a6)
  • vats: Shape of NameHub lookupAdmin rest args (ad575b0)
  • vats: update error message test (37bae13)
  • vats: update vlocalchain API (6ef27ab)
  • vaultFactory: fix proposal description (bc1f87a)

Reverts

  • Revert "feat(inter-protocol)!: rename InterestRate to StabilityFee" (bd46e78)

0.15.1 (2023-06-09)

Note: Version bump only for package @agoric/vats

0.15.0 (2023-06-02)

⚠ BREAKING CHANGES

  • rename EndorsedUI to ReferencedUI

Features

  • board-utils: vbankAssets in makeAgoricNamesRemotesFromFakeStorage (0a7bc2c)
  • rename EndorsedUI to ReferencedUI (8e904a9)

Bug Fixes

  • vat-bank: getPurse race (185a4f0)
  • vat-bank: use JSON for composite string keys (5fc1179)
  • vaults: address a divide-by-zero; correct penalty w/no bidders (5e8b363), closes #7785

0.14.1 (2023-05-24)

Note: Version bump only for package @agoric/vats

0.14.0 (2023-05-19)

⚠ BREAKING CHANGES

  • test-vaults-config -> itest-vaults-config to avoid conflict
  • remove obsolete Treasury
  • emit smallcaps-format data in all marshallers
  • priceAuthority: canonicalize registry
  • vaults: correct terminology for debt
  • auction: Currency → Bid
  • --giveCurrency option becomes --give and likewise --wantCollateral -> --want. Use snake-case for options throughout to match cosmos-sdk style

    • bid commands integrate wallet send step
      • show bid result
    • use only liveOffers for inter bid list by default
      • to show all: --all
    • fix: provide --allow-spend for tryExitOffer unless/until we change the wallet contract
    • don't show redundant result in error case
    • trial: use offer safe want in by-price bids
    • leave exit onDemand implicit
    • refactor:
      • factor out outputActionAndHint
      • allow explicit io for execSwingsetTransaction
        • combine options into one object
      • factor out storedWalletState
      • factor pollBlocks out of pollTx
    • update tests

feat: inter bid by-discount sends; --generate-only; list --all

  • bid by-discount, like by-price, sends the tx
    • factor out placeBid, SharedBidOpts, withSharedBidOptions
  • bid list uses activeOffers unless --all is given
  • support --generate-only
  • use snake-case for option names; avoid [xx] optional syntax
  • give PATH clue everywhere execFileSync is used
  • test.todo()s
  • code polish:
    • expand file, function docs
    • refactor: hoist bidInvitationShape
    • wallet: reject executeOffer on failure
    • notifier: tidy up the implementation
    • AMM: remove the AMM and cleanup bootstrap etc. dependencies (#7074)
    • rename 'fit' to 'mustMatch'
    • remove storeName parameter

Features

  • initialize vstorage for purchased/provisioned wallets (2dad4dc)
  • boot: terminate bootstrap vat if boot fails (1f60c25)
  • bootstrap: diagnostics object (1c42d09)
  • bootstrap: save privateArgs into diagnostics (8c3626f)
  • Add incarnation number to the transcript store records (5d64be7), closes #7482
  • add powerStore to bootstrap space (b8623fc)
  • Add SwingSet configuration to purge vstorage within (re-)bootstrap (f248e91), closes #7681
  • governor: upgradable (9a1a9c1)
  • internal: makeFakeStorageKit supports "get" and "entries" (6a69aab)
  • awaitVatObject rawOutput (004e290)
  • change offerArgs keyword from want to maxBuy, wire through CLI (#7451) (7cd7bb7)
  • clientSupport for bidding, reserve (3a27543)
  • durable agoricNames in its own vat (526396e)
  • durable namehub with .has(), .entries(false) (11e61b5)
  • emit smallcaps-format data in all marshallers (1753df8), closes #6822
  • introduce auctioneer to econCommitteeCharter (af1b253)
  • makeVatSpace() (3dcc64a)
  • nameHub: mixinMyAddress (6c305c4)
  • promise space backed by store excludes non-keys (f7c72f8)
  • PromiseSpace hooks with store support (15d14a3)
  • provideInertBrand from agoricNames vat (5d867f9)
  • publish agoricNames.brand.timer (51235d7)
  • save createVat() results durably (6009893)
  • save most bootstrap powers to durable storage (7b4212b)
  • store bootstrap contract start results durably (70a50f6)
  • bundleTool: idempotent provideBundleCache (026bcd4)
  • core: HighPrioritySendersManager (7b382e4)
  • econComittee: upgradable (a07acef)
  • NameHub: NameAdmin.provideChild() (99095fb)
  • priceAuthority: canonicalize registry (9a6466d)
  • priceAuthority: registry singleton durable (3d20838)
  • provisioning: durable vat for namesByAddress (5d32752)
  • provisionPool: durable ProvisionPoolKit (59db213)
  • provisionPool: upgradable (00934ca)
  • psm: validate terms and args before start (d09f21b)
  • vats: add vat labels to contracts (dbef5e5)
  • vats: allow replacing a scoped bridge handler (#7609) (09561e3)
  • vats: fully durable vat-bank.js (a83bbff)
  • vats: zoned virtual-purse.js (ef542e7)
  • start PSM contracts with metrics, governance from previous published state (#7480) (1a65832), closes #6645
  • tools to start contracts, being sure to save adminFacet (ad5dfc3)
  • UX for inter bid (52d93c3)
  • AMM: remove the AMM and cleanup bootstrap etc. dependencies (#7074) (ed5ee58), closes #7047
  • auction: add an auctioneer to manage vault liquidation (#7000) (398b70f), closes #6992 #7047 #7074
  • auction: clearer bid offer result message (048a7db)
  • board-utils: BoardRemote like Remotables (3aa44de)
  • bridge: make durable (9f3895f)
  • inter-protocol: separate inviteCommitteMembers from inviteToCharter (4c5340d)
  • notifier: tidy up the implementation (89af682)
  • smart-wallet: publish possibly exitable offers (de0170a)
  • vats: bootstrap config for vaults testing (0059c7e)
  • vats: colocate chainStorage with bridgeManager (132046a)
  • vats: export makeAgoricNamesAccess at package level (9ae7701)
  • vats: harmonise core/boot.js and boot-psm.js (4f6635e)
  • vats: make walletFactory a coreProposal (ef1d6b9)
  • vats: plausible initial ATOM price for vaults test config (1f8c6ce)
  • vats: provide one icacontroller-* port per client (5406eb7)
  • vats: publish vbank asset list with agoricNames (53ea8b8)
  • vats: Scoped bridge managers (11f6429)
  • vats: share Invitation issuer/brand in agoricNames (819ed35)
  • vats: update devnet config to post-Pismo (3eca8d6)
  • vats: upgradeable board (b990271)
  • vats: upgradeable mintHolder (2648658)
  • vaults: set endorsedUi default from chain config (fc0b2fc)
  • wallet: executeOffer throw errors (224dbca)
  • wallet: record bridge errors to vstorage (f8581e9)
  • wallet: reject executeOffer on failure (308caab)
  • board-utils (4f80ad3)
  • boot-oracles (ce8f8de)
  • cache bundles in initializeSwingset (6e57171)
  • getPath() on StorageNode and StoredSubscriber (dae47a5)
  • hold onto adminFacets in bootstrap (#6094) (a2ecdec), closes #6034
  • testing supports in bootstrap (197a6e3)

Bug Fixes

  • vaults: return correct collateral after liquidation (d86fc99), closes #7779 #7346
  • test-vaults-config -> itest-vaults-config to avoid conflict (db8f915)
  • core: floating promises (e8bf20d)
  • governance: governor adminFacet handling (785950a)
  • provisionPool: handle restartContract (cb49fd5)
  • provisionPool: publish metrics at start of every incarnation (cdacfc4)
  • provisionPool: publishMetrics() for overrideMetrics() (3d4997a)
  • vats: Be mindful of unsettled promises (5a1e322)
  • vats: Extract revivable wallet addresses from the correct chain storage path (2454d3f)
  • vats: make BankManager durable (d8b3eaf)
  • vats: make getAssetSubscription return an exo subscription (98a5325)
  • vats: Revert breaking change to contract facets (94081be)
  • vats: Store and read vstorage StreamCell values correctly (de7a92f)
  • vaultFactory: terminate on failure to start() (193e8ec)
  • avoid AssetPublisher bootstrap export (8b23b95)
  • avoid exporting USD oracle brand from bootstrap (445a0fe)
  • don't drop the rawBootstrap promise (90a742a)
  • Harden facets returned from produceStartGovernedUpgradable (bee4aaa)
  • Improve the smart wallet revival handshake (69ec2e7)
  • Preserve provisionPool metrics across bulldozer upgrade (50d0eaf), closes #7705
  • Preserve smart wallets through bulldozer upgrade (160bf6c), closes #7537
  • Process remotables in vstorage data migrated through bootstrap (433c1f1)
  • provisionPool metrics in exportStorageSubtrees (1404b3f)
  • vats: fix promise space reset() misbehavior (c191ee1), closes #7709
  • privateArgsShape for restart (fd6572e)
  • AgoricNames: throw publishing errors (44fdc31)
  • types: PromiseSpace (fc89a56)
  • vats: Preserve receiver for unmarshalFromVstorage fromCapData callbacks (21809ba)
  • zoe: Add explicit makeDurableZoeKit (a3f9dc0)
  • zoe: Upgradable Zoe vat (83a5ab7)
  • NameHub.updated promise handling (3a14d30)
  • NameHub.updated promise handling (14eddab)
  • use subscribeEach to get reconnect benefits (fb24132)
  • ERTP: getCurrentAmountNotifier returns a LatestTopic (735d005)
  • vats: use zoned virtual-purse.js in vat-bank.js (777aac0)
  • remove AssetHub attenuator bootstrap export (a94e313)
  • remove well-known-name limitation on reserved brands etc. (1062c0a)
  • auction: Currency → Bid (650cf4c)
  • auction: durability (de394d3)
  • inter-protocol: save price feed and vbank admin facets (83a7837)
  • inter-protocol: save psm mintHolder admin facet (8ab6582)
  • inter-protocol: save scaledPriceAuthority admin facets (f65260f)
  • oracles: set min oracles in devnet to 3 (8c707f8)
  • provisionPool: metrics publishing path (bad93e2)
  • vats: IbcATOM -> ATOM (405ed03)
  • vats: loadVat/loadCriticalVat now accepts bundleIDs too (789091d)
  • vats: move vat-ibc/vat-network from config to network-proposal.js (68c8363), closes #7044
  • vats: produce start fns for psm-only bootstrap (9531af9)
  • bootstrap handles BundleIDs, not full bundles (de8b0f5), closes #6826 #4374
  • code updates for new marshal (292f971)
  • IbcATOM->ATOM in 1 config (a9efc75)
  • introduce wallet factory governor to econ charter (02989cf)
  • smart-wallet: create purses for new assets lazily (e241ba0)
  • smart-wallet: reenable provisioning options (55f3ab1)
  • vat-provisioning: bad updater call (3835198)
  • vat-provisioning: bad updater call (2f7d5f4)
  • vats: always eventual-send to bridgeManager (f3a10ce)
  • vats: prune mints/faucet from prod-like vats config (74d5f33)
  • vats: reattach this to publisher.publish (575ed1b)
  • vats: remove duplicate - from icacontroller--2 port (3d22773)
  • vats: repl tolerates toStringTag override (d748087)
  • vats: tolerate null powerFlags (140986f)
  • vats: use async chainStorage methods (0507206)
  • vaults: correct terminology for debt (e23ad70)
  • zoe: payments more recoverable (#7112) (ce7244d)
  • align testnet -> agoric start tooling (ead89fb)
  • remove incomplete device-mock method getBundleIDByName (18763b6)
  • replace unsafe then with E.when (#6684) (d7a749e)
  • replace zoe.install with zoe.installBundleID (8a91b1b), closes #6826
  • swingset should define these types, not zoe/ERTP (35a977b)
  • update types/dependencies for new @agoric/time (418545a)

Miscellaneous Chores

0.13.2 (2023-02-17)

Note: Version bump only for package @agoric/vats

0.13.1 (2022-12-14)

Note: Version bump only for package @agoric/vats

0.13.0 (2022-10-18)

Features

  • anchorAssets config for {USDC,USDT}_{axl,grv} on main (b938a79)
  • econ committee addresses (548c096)
  • vats: test config doesn't use up production token keywords (ade318b)

Bug Fixes

  • allow test flag for update (237c56e)

0.12.1 (2022-10-08)

Bug Fixes

  • implement upgrade handler (0f64bf1)

0.12.0 (2022-10-05)

Features

  • vats: devnet config with anchorAssets, econ cttee addrs (#6282) (bc883b5)

Bug Fixes

  • provisionPool: update metrics on trades (02733eb)
  • vats: handle duplicate provision requests (#6307) (05d405d)

0.11.0 (2022-09-20)

⚠ BREAKING CHANGES

  • legacy-smart-wallet: remove dead package
  • store: split provide into collision vs no-collision variants (#6080)
  • vats: Switch the "published" chain storage subtree to stream cells
  • chainStorage: assertPathSegment (replacing sanitizePathSegment)
  • run-protocol: rename to inter-protocol

Features

  • board: getPublishingMarshaller and getReadonlyMarshaller (980ac06)
  • bootstrap: produce testFirstAnchorKit (219f6fd)
  • cache: makeChainStorageCoordinator (a9b8f3e)
  • chainStorage: assertPathSegment (replacing sanitizePathSegment) (cc4ca9a)
  • cosmic-swingset: Add chainStorage interface (#5385) (109ff65), closes #4558
  • nameHub: listen for changes with admin.onUpdate() (8b4a8af)
  • priceAggregator: publish quotes (d4054d9)
  • provision: govern initial amount; metrics (f16352d)
  • psm: far class and guard patterns (#6119) (11a17d3), closes #6129 #6135
  • smart-wallet: contract for wallet factory (57eac62)
  • vats: Add loadCriticalVat (d9f1414)
  • vats: add provisionPool to agoricNames (7709e76)
  • vats: Add support for configuring chainStorage nodes as sequences (461204a)
  • vats: better bootstrap errors (682151a)
  • vats: bootstrap.produceItem(), consumeItem, resetItem (e2d6ced)
  • vats: facilitate launching additional PSMs (6bf3164)
  • vats: handle >1 anchorAssets in boot-psm (b394bef)
  • vats: include startPSMCharter in PSM bootstrap (7bb593c)
  • vats: introduce psmCharter to provisionPool (3e96944)
  • vats: makeMockChainStorageRoot test util (7e48be3)
  • vats: provisionPool trades provided assets for IST (e3f9621)
  • vats: start governed provisionPool (1d100e8)
  • ensure voting via PSMCharter works with a unit test (#6167) (ff9471b)
  • vats: provide essential issuers to smartWallet (e3774d5)
  • vats: provide initial IST to new accounts (aa535f5)
  • vats: publishAgoricNames to chainStorage as part of bootstrap (b41b87d)
  • vats: Switch the "published" chain storage subtree to stream cells (a427c59), closes #5508
  • vats: upgrade to psm-first smart-wallet (3762fff)
  • contract for single on-chain wallet (0184a89)
  • distribute PSM Charter Invitatitons (#6166) (50cd3e2)
  • make PSM bootstrap support multiple brands (#6146) (d9583f8), closes #6142 #6139
  • new Smart Wallet (708972f)
  • vats: PSM-first bootstrap (2f4110a)
  • vats: tag dynamically loaded vats with bundle name (f016ab8)

Bug Fixes

  • board: use SEVERED instead of INACCESSIBLE (1e6636c)
  • cosmic-swingset: Publish installation success and failure topic (6a9f533)
  • provisionPool: only provision an account if pool has funds (52c17e3)
  • vats: avoid importing sim-behaviors into boot-psm.js (356d522)
  • vats: chainStorage vat writes directly to device (bfacc92)
  • vats: economicCommitteeAddresses {} update (3964caa), closes #6168
  • vats: ensure rejections from loadVat are caught (bb9eb9c)
  • vats: Fix test failures (26b2a60)
  • vats: Mark bootstrap vats as critical (55ca7a0)
  • vats: point to @agoric/smart-wallet/src/walletFactory.js (50ff847)
  • vats: propagate error from PSM bootstrap (0c8ab04)
  • vats: snapshot 5x less often (723cf42)
  • add a defaultReapInterval setting to active swingset configurations (4f4ab5b), closes #4160
  • Fix test failures in packages other than "vats" (364815b)
  • tests use debug settings (#5567) (83d751f)
  • Use new || assert style, but when TS confused use if instead (#6174) (94625d3)
  • vats: Replace loadVat calls with loadCriticalVat (2ec0b83), closes #6051
  • patch to suppress turn tracking diagnostics (#5892) (18cfe7a)
  • SMART_WALLET account flag for smart wallet vs. ag-solo client (#5806) (8ed0d70)
  • vats: update chainStorage to use new vstorage API (094044c)
  • walletFactory: marshal using petnames (#5743) (5d49ad7)

Code Refactoring

  • run-protocol: rename to inter-protocol (f49b342)
  • store: split provide into collision vs no-collision variants (#6080) (939e25e), closes #5875

Miscellaneous Chores

  • legacy-smart-wallet: remove dead package (bb56ce8)

0.10.0 (2022-05-28)

Features

  • cosmic-swingset: implement make scenario2-run-chain-economy (82a6ee9)
  • feeDistributor: new run-protocol Zoe contract (b5d9869)
  • nameHub: introduce default and set (e7437f2)
  • vats: decentral-economy-config to launch full economy at bootstrap (ed49ed9)
  • vats: separate reserve and reward streams (8303c97)

Bug Fixes

  • nameHub: align implementation with types (fcb1b2a)
  • vats: make core config location independent (9612d59)
  • vats: store results of createVatByName for zoe etc. (d991a55), closes #5013

0.9.0 (2022-05-09)

Features

  • vats: export AssetTerms type from mintHolder.js (cfd5648)

Bug Fixes

  • basic-behaviours: assign home.priceAuthority (7afa292)
  • centralSupply: shutdown after providing bootstrap payment (823dda0)
  • chain-behaviors: propagate VatData to endowments (e9ed050)
  • chain-behaviors: use endowments consistently (166ffd5)

0.8.0 (2022-04-18)

⚠ BREAKING CHANGES

  • add collateral Reserve to hold collateral and add to AMM under governance control (#4635)
  • consistent Node engine requirement (>=14.15.0)

Features

  • boot: keep ahold of agoricNamesAdmin (ed34cdb)
  • build-bundles: create source bundles with helper (732292a)
  • cosmic-swingset: grant addVaultType based on addr (#4641) (e439024)
  • deploy-script-support: shell out to bundle-source (18e8c88)
  • deploy-script-suppport: e2e writeCoreProposal (88a0cf7)
  • run-protocol: charge penalty for liquidation (#4996) (5467be4)
  • run-protocol: debtLimit governed param (#4948) (161e968)
  • run-protocol: RUNstake contract only, without payoff from rewards (#4741) (52f60eb)
  • vats: add lookup(...path) to board (df8fee0)
  • vats: add evaluateInstallation to bootstrap powers (4306ac9)
  • vats: allow nameAdmin.update to specify a subadmin (fb9c51b)
  • vats: control whether producer.reset rejects the consumer promise (611f75c)
  • vats: introduce 'oracleBrand' (4f3f5e0)
  • vats: make NameHub accessible via NameAdmin.readonly() (67fc609)
  • vats: make default board IDs be board0{crc}${sequence} (2d2de8c)
  • vats: move BLD mint, issuer to its own vat (0acce28), closes #4578
  • vats: pass options thru runBehaviors (72d1f8d)
  • vats: remove pegasus from bootstrap (c384a41)
  • vats: support coreProposals (b45e5c6)
  • virtual-purse: use a recoveryPurse to track payments (959ed31)
  • add collateral Reserve to hold collateral and add to AMM under governance control (#4635) (3e3f55f), closes #4188 #4188
  • implement the durable kind API (56bad98), closes #4495

Bug Fixes

  • core-boot: complain louder if bootstrap fails (b6dd4fc)
  • core-boot: only endow evaluateInstallation` if permitted (50a1156)
  • eventual-send: correct types for ERef (d23c425)
  • run-protocol: shuffle around to fix types (1c06bbd)
  • vats: core eval: evaluation errors were not logged (9288e55)
  • vats: make tests work with new bundlecaps (fc55adc)
  • vats: move startPriceAuthority earlier in the boot sequence (bf93171)
  • vats: provide proper zcfSpec.name when building zoe (1a8a54d)
  • vats: reimplement and test PromiseSpace.reset (e196144)
  • vats: reserve centralSupply and mintHolder installs (5873d41)
  • vats: update swingset deep-import paths (a1f88c9)
  • vats: use decentral-*-config.json to bundle Zoe contracts (125e9ba)
  • correct bugs due to weird & mistaken buildRootObject usage (990e7d8)
  • freeze globalThis in coreEval to enforce OCap discipline (02f401f), closes #4642 #4352
  • recover stuck payments (2e366cb)
  • remove purse.claim per review comment (e68ce40)
  • two isolated cases where a missing argument did not default (531d367)
  • vats: second argument to makeBoard is opts (e4ac8d4)
  • zoe: pass brands (not issuers) to priceAggregator (5800711)

Miscellaneous Chores

  • consistent Node engine requirement (>=14.15.0) (ddc40fa)

0.7.0 (2022-02-24)

⚠ BREAKING CHANGES

  • vats: decentral-config.json config file is no longer available. Use decentral-core-config.js, which starts core services by not RUN protocol etc., or decentral-demo-config.js, which does start the RUN protocol and provides demo funds in wallets, AMM.

Features

  • cosmic-swingset: add tools for core-eval governance (7368aa6)
  • vats: pass some module namespaces to core eval (7b063db)
  • overhaul the virtual object API (e40674b), closes #4606
  • vats: core bootstrap behaviors: addBankAssets, ... (613aff6)
  • vats: demo bootstrap behaviors: connectFaucet, fundAMM (b6776ab)
  • vats: reserve depositFacet for each client (806ed5a)

Bug Fixes

  • vats: don't dup / clobber client/home properties (9ddf290)
  • vats: parse coreEval permits correctly (eb04df5)
  • vats: prune bootstrap config that mixed prod with test/demo (d90251d), closes #4165
  • vats: reserve Treasury uiConfig for compatibility (943fba5)
  • vats: reserve: is noop if key already exists (NEEDSTEST) (668ef1e)

0.6.0 (2022-02-21)

⚠ BREAKING CHANGES

  • vats: use pegasus port for Pegasus implementation

Features

  • ibc: reimplement relativeTimeoutNs, per ibc-go (4673493)
  • pegasus: properly abort on connection close (1b17f7a)
  • implement persistent stores (e1050b0)
  • vats: add attestationMaker to home (WIP) (ad5501b)
  • vats: agoricNames, namesByAddress, myAddressNameAdmin (4535c8d)
  • vats: assign client properties on a per-address basis (48194ed)
  • vats: boostrap-core connects vattp<->mailbox (WIP) (2be2939)
  • vats: build Zoe as bootstrap step (bb8d0a8)
  • vats: choose bootstrap behaviors by name (13627b2)
  • vats: connectFaucet bootstrap behavior (9e53f4f)
  • vats: Cosmos chain core bootstrap with ag-solo client (a4ab506)
  • vats: demo-config to install economy automatically (a948b16)
  • vats: in sim-chain, delegate economy bootstrap to REPL user (116ccbd)
  • vats: installSimEgress (a438f47)
  • vats: makeBLDKit (4dac138)
  • vats: makeBoard in core bootstrap (af1b920)
  • vats: produce priceAuthorityAdmin from startVaultFactory (29f6324)
  • vats: provide home.zoe via makePromiseSpace (a50c727)
  • vats: provide noop agoric.faucet in local-chain (5c990a3)
  • vats: put RUN, BLD issuer, brand in agoricNames (3c9eef2)
  • vats: start attestation contract (WIP) (1c44623)
  • vats: start getRUN protocol (2c97f86)
  • vats: start VaultFactory in core bootstrap (8d56eaf)
  • vats: visualize bootstrap (WIP) (2489f1d)

Bug Fixes

  • vats: improved IBC network protocol (0cd94c3)
  • vats: use pegasus port for Pegasus implementation (4256c54)
  • Enhance TypeScript node_modules search depth (113d31b)
  • Enhance TypeScript node_modules traversal depth (000f738)
  • vats: buildDistributor call; refactor bootstrap.js (d854298), closes #1
  • vats: ensure nameHub API returns arrays (fac4476)
  • vats: fix lint problems (ce94710)
  • vats: get configuration.clientHome updates to agoric (c50248e)
  • vats: minor adjustments to legacy bootstrap (877f30a)
  • vats: move to decentral-core-config.json to prevent breakage (63c7541)
  • vats: unstaked BLD should not be a vault collateral type (1d24556)

0.5.1 (2021-12-22)

Note: Version bump only for package @agoric/vats

0.5.0 (2021-12-02)

⚠ BREAKING CHANGES

  • repl: add @endo/far exports to REPL, remove ui-agent
  • ERTP: NatValues now only accept bigints, lower-case amountMath is removed, and AmountMath methods always follow the order of: brand, value

  • chore: fix up INPUT_VALIDATON.md

  • chore: address PR comments

Features

  • repl: add @endo/far exports to REPL, remove ui-agent (3f41296)
  • tweak fictional BLD price to suggest early phase (472912e)
  • walletManager: enable agoric.chainWallet deployment power (93b290b)

Bug Fixes

  • wallet: allow sync dateNow via timerService or timerDevice (8b6069a)

Miscellaneous Chores

  • ERTP: additional input validation and clean up (#3892) (067ea32)

0.4.2 (2021-10-13)

Bug Fixes

  • vats: Fork polycrc for ESM compat with Endo/Zip (6d9df0e)

0.4.1 (2021-09-23)

Features

  • solo: make client objects appear earlier, parallelise chain (656514e)

0.4.0 (2021-09-15)

⚠ BREAKING CHANGES

  • issuers: clean up issuers for demo

Features

  • issuers: clean up issuers for demo (228cf1a)

Bug Fixes

0.3.2 (2021-08-21)

Note: Version bump only for package @agoric/vats

0.3.1 (2021-08-18)

Note: Version bump only for package @agoric/vats

0.3.0 (2021-08-17)

⚠ BREAKING CHANGES

  • make the run mint within Zoe, and give only the treasury the ability to create a ZCFMint with it

  • chore: change 'makeZoe' to 'makeZoeKit'

  • chore: add "shutdownZoeVat" argument to Zoe, and pass it to makeIssuerKit for invitation issuerKit and fee issuerKit

  • chore: manually lint-fix install-on-chain.js

See https://github.com/Agoric/agoric-sdk/issues/3672 for the issue to fix the root problem

Features

  • create feePurse in bootstrap and import to wallet (4e9d5b0)
  • cosmic-swingset: provide RUN for sim-chain (6d27815), closes #3266

Bug Fixes

  • threshold must be a bigint (102da87)
  • vats: properly wire in the Zoe kit (4b926e8)
  • wallet: never fail to suggestPetname (dd4fbc1)
  • BREAKING CHANGE: create the RUN Mint within Zoe (#3647) (48762aa), closes #3647

0.2.15 (2021-08-16)

Note: Version bump only for package @agoric/vats

0.2.14 (2021-08-15)

Bug Fixes

  • Update packages/vats/src/ibc.js (d6d5ae2)
  • vats: vat-ibc must use LegacyMap, not Store, to hold a Set (2479017), closes #3621
  • Add zcf extensions (862aefe)

0.26.10 (2021-07-28)

Features

  • improve ag-solo robustness and performance (b101d3a)

0.2.13 (2021-08-14)

Bug Fixes

  • Update packages/vats/src/ibc.js (d6d5ae2)
  • vats: vat-ibc must use LegacyMap, not Store, to hold a Set (2479017), closes #3621
  • Add zcf extensions (862aefe)

0.26.10 (2021-07-28)

Features

  • improve ag-solo robustness and performance (b101d3a)

0.2.12 (2021-07-28)

Features

  • improve ag-solo robustness and performance (b101d3a)

0.2.11 (2021-07-01)

Bug Fixes

  • retreat from xs-worker-no-gc to xs-worker (ce5ce00)

0.2.10 (2021-07-01)

Note: Version bump only for package @agoric/vats

0.2.9 (2021-06-28)

Note: Version bump only for package @agoric/vats

0.2.8 (2021-06-25)

Features

  • swingset: introduce 'xs-worker-no-gc' for forward compat (e46cd88)

0.2.7 (2021-06-24)

Bug Fixes

  • maybe the best of both worlds: xs-worker but no explicit gc() (8d38e9a)

0.2.6 (2021-06-24)

Bug Fixes

  • use 'local' worker, not xsnap, on both solo and chain (a061a3e), closes #3403

0.2.5 (2021-06-23)

Note: Version bump only for package @agoric/vats

0.2.4 (2021-06-16)

Note: Version bump only for package @agoric/vats

0.2.3 (2021-06-15)

Features

Bug Fixes

  • have supplyCoins decide amount to escrow for the bank purses (c7cba64)
  • Pin ESM to forked version (54dbb55)
  • remove references to @agoric/babel-parser (e4b1e2b)
  • repl: render the unjsonable things described in #2278 (bef7d37)
  • remove references to @agoric/registrar (ec6cc6d)

0.2.2 (2021-05-10)

Bug Fixes

0.2.1 (2021-05-05)

Note: Version bump only for package @agoric/vats

0.2.0 (2021-05-05)

Bug Fixes

  • add brand to depositMultiple mock bank (0d1f22d)
  • polishing touches (334a253)
  • remove awaita from depositMultiple (a7da714)
  • update types and implementation now that Far preserves them (a4695c4)

Features

  • add bank assets for "cosmos" issuers (currently BLD) (3148b83)
  • add home.bank and home.bankManager (276a1d3)
  • default to xs-worker in chain (#2995) (7ebb5d8)
  • donate RUN from the bootstrap payment on each provision (43c5db5)
  • first cut at a virtual purse API (0c46a9d)
  • handle VPURSE_BALANCE_UPDATE as return value from GIVE/GRAB (6e62c24)
  • have the bank use normal purses when not on chain (90ab888)
  • implement vat-bank and test (e7c342a)
  • wire up vats.distributeFees (9e16332)
  • vats: fully-working decentral services (3525283)
  • vpurse: connect to golang (d2f719d)