v3.0.0-alpha.8
Pre-releaseMinor Changes
-
Add post-deployment verification through
verify-*Makefile targets (#548)Contracts could be verified at deployment time through the
--verifyoption, but verification can fail for reasons unrelated to the deployment itself, in which case the deployment script would have nothing left to broadcast. The new targets read the deployment artifacts instead, so verification can be attempted as many times as necessary. Contracts that are already verified are skipped, so the targets are idempotent, just like the deployment ones.- Add a
verify-<chain>target for every supported livenet, which verifies every deployed core contract on that chain, one at a time - Add
verify-<chain>-<contract>targets, for verifying a single core contract - Add the aggregate
verify-testnets,verify-mainnetsandverify-livenetstargets (the devnet is not covered by any of them, as it is not backed by any public explorer) - Verify on Etherscan if
ETHERSCAN_API_KEYis set, and on Sourcify otherwise; extra options can be passed down toforge verify-contractthrough theVERIFY_OPTSvariable - Document the process, along with troubleshooting instructions, in the new verification guide at
docs/verification.md.
- Add a
-
Store deployment addresses in plaintext, besides JSON
The deployment script now writes a
deployments/<chain-id>/<contract-name>.txtfile containing only the address, alongside the existing.jsonfile. This lets the Makefile and the documentation read deployment addresses without takingjqas a dependency. The README example was updated accordingly, and now readscat deployments/31337/InputBox.txt. -
Deprecate JSON deployment artifacts
Internally, only plaintext artifacts are used, since they do not require JSON-processing tools like
jq. Clients are advised to migrate. Once all main clients (dave,rollups-node,rollups-tsandrollups-explorer) have migrated to plaintext artifacts, we will remove the JSON artifacts. -
Add a
TestUsdctoken to the devnetIt mocks the original USD Coin token, and represents amounts with 6 decimal places instead of the OpenZeppelin default of 18, so that front-ends can be exercised against realistic values. The devnet
TestUsdWithdrawalOutputBuilderis now backed byTestUsdc, instead ofTestFungibleToken. Like the other devnet tokens,TestUsdcis included in the published build artifacts and in the Rust bindings crate. The mint and burn entrypoints shared by the devnet fungible tokens were extracted into a new abstractBaseTestFungibleTokencontract.
Patch Changes
- Bump
cartesi-machine-solidity-stepfrom thev0.15.0-test1tag to the definitivev0.15.0tag (#547) - Bump the alloy version of the generated Rust bindings crate from 1.0 to 2
- Make
publish-soldeer-packagetreat0,n,noandfalseas falsy values ofDRY_RUN, so that the Soldeer-publishing workflow (which evaluatesDRY_RUNtofalseon releases) actually publishes the Soldeer package instead of merely dry-running the process (#542) - Set
ALCHEMY_API_KEYon the release-artifacts CI job, which simulates deployments to every supported network, so that the pipeline no longer depends on rate-limited public JSON-RPC providers - Bundle release artifacts deterministically, through
tar --sort=name --mtime=@0 --owner=1000 --group=1000 --numeric-owner - Exclude the
unsafe-cheatcodelint infoundry.toml, instead of disabling it at each call site - Documentation improvements
- Makefile improvements
- CI actions bumps
Full Changelog: v3.0.0-alpha.7...v3.0.0-alpha.8