Change Logs

  • 05 April 2021

    • We released SES 0.12.7 with an error annotation feature in preparation for distributed tracing
    • The Treasury was moved to agoric-sdk. autoswap publishes prices using a priceAuthority. PriceAuthority now has the ability to reset trigger levels on outstanding requests rather than requiring new requests
    • Phase 1 of the incentivized testnet is underway.
  • 22 March 2021

    • We have published SES v0.12.4 with five features that expand usability
    • Zoe and Zoe contracts now use the new, static version of AmountMath, which is a lot easier to use. The old version is still available but is deprecated and will be removed in the next few weeks, so please upgrade your contracts and dapps!
    • We deployed a new devnet to get some experience with the latest software release we’re going to use in our first phase of the incentivized testnet.
    • We added a new package to agoric-sdk called ui-components. Dapp developers can use these reusable React MaterialUI components for things such as displaying and collecting user input for amounts of fungible tokens. We will be adding more to this package and releasing it to npm soon!
    • Work continues to move contract execution to the XS JavaScript engine. Instrumentation was added to collect detailed timing statistics from running validators and follower nodes.
  • 15 March 2021

    • We made a change to ERTP ( to reduce the amount of RAM needed. Payments are now “virtual objects”, meaning that payments are in external storage, and new payment objects are created to represent each payment as needed. Importantly, payments no longer retain the same object identity, so please be careful not to depend on identity comparison for payments. For more on the low-level technology, see this writeup on virtual objects:
    • The SwingSet kernel now supports invoking the asyncIterator method between vats. The comms protocol handles previously-resolved Promises better than before. Work has begun on cross-vat garbage collection, to reduce memory usage for long-running contracts.
    • In contracts and other vat code, all empty objects (harden( { } )) are now pass-by-copy, just like any other form of data. Previously they were pass-by-reference, like objects with methods. It was common to use an empty object as a “handle” or key in a store or a WeakMap. Now you must use Far(‘some interface name’, {}) to create such handles. The @agoric/store table will reject attempts to use a pass-by-copy empty object as a key to detect mistakes.
    • Errors that occur during vat operations may now be reported differently. We’re working to include better stack traces for user display, but also hide confidential details from intermediate code which might try to catch the exceptions.
  • 08 March 2021

    • We added a new, static form of AmountMath that simplifies its usage. Instead of keeping an amountMath per brand in ERTP, developers can now simply import amountMath from @agoric/ertp and use it directly. The old version of amountMath is deprecated and will be removed in the next few weeks.
    • The SES Compartment Mapper is now fully checked with TypeScript. The next release of SES exports more Compartment related type definitions.