CHANGELOG #1 - Simple Updates About Virtually Everything

We’ll be using the forum to keep an ongoing record of the changes we’re shipping.

We’ll begin with the first two weeks of this year, and post similar updates every ~2 weeks from now.

Jan 1 - 19

suave-geth

Initial release: v0.1.0 :tada:

Installing suave-geth is now as easy as:

$ curl -L https://suaveup.flashbots.net | bash
$ suave-geth --suave.dev

This change also goes along with deprecating the current Docker setup.

suave-std

suave-std is a collection of Solidity contracts and libraries to help you create Suapps.

This will likely become the main entrypoint for developers who want to build SUAPPs.

Retiring SuaveForge.sol

SuaveForge.sol was a helper contract we initially used to assist with running smart contracts intended for SUAVE in Forge. With the extension of capabilities now introduced by suave-std, this no longer necessary or optimal.

Forge Cheat Codes

This PR adds the confidentialInputs precompile as a “cheat code” in Forge, meaning you can both mock and reset inputs which are intended to be confidential in both contracts and their tests.

This follow-up PR adds the support required for resetting the confidential store to enable cleaner, better tests.

New MevShare Library

One of the core examples we use at this early stage to illustrate what SUAVE can do is an implementation of the current MEV-Share protocol in a SUAVE smart contract.

This PR improves how we implement that example and makes it more realistic.

eth_sendBundle Support

This PR adds support for the eth_sendBundle RPC supported by the Flashbots Builder and, once again, demonstrates how services which currently rely on trusted third parties can be implemented as smart contracts on SUAVE.

[WIP] EIP-1559 Transaction Support

Our first community contribution in the suave-std repo! :sunny:

You can find another great community contribution in the SUAVE playground.

suapp-examples

With the implementation of suave-std, our SUAPP examples repo has also been overhauled.

Change of submodules

It was once necessary to include suave-geth as a submodule in this repo in order to get everything working, but we can now just use the much lighter suave-std repo, making life easier, better, and quicker for everyone.

DataRecords, not Bids

The above PR also implements some of the last changes we shipped in suave-geth in 2023, changing the name of a low-level data object from Bid (which was causing a lot of confusion) to DataRecord, which is a bit more wordy, but also more clear.

[WIP] UniSUAPP

Brock is working on an implementation if Uniswap V2 on SUAVE. We’ll discuss further details in the next update once this is finished and merged.

Docker setup

It’s now possible to run a Docker setup when working with the examples that will start everything you need for more complex SUAPP development. Our initial docker setup in suave-geth only started the SUAVE chain, and left some of the other pieces off by default. This new Docker file fixes that.

Public network support

A number of early testers and tinkerers have run into issues trying to build SUAPPs which depend on data from other chains, or post data to other chains, or do some mix of both.

This PR shifts a lot of the configuration details in env variables and makes the changes necessary to enable anyone to more easily set up their work, especially if it depends on multiple chains.

Miscellaneous

Precompile docs automation

We now update our list of available precompiles automatically whenever a new one is merged so that it is always up-to-date.

4 Likes