Skip to content

Upgrade to rollups-contracts 3.0.0-alpha.9 - #151

Merged
tuler merged 8 commits into
prerelease/v2-alphafrom
claude/wagmi-plugin-version-bump-e8wqpt
Aug 19, 2026
Merged

Upgrade to rollups-contracts 3.0.0-alpha.9#151
tuler merged 8 commits into
prerelease/v2-alphafrom
claude/wagmi-plugin-version-bump-e8wqpt

Conversation

@tuler

@tuler tuler commented Aug 10, 2026

Copy link
Copy Markdown
Member

Summary

Move the generated contracts from rollups-contracts 3.0.0-alpha.6 to 3.0.0-alpha.9, and generate the devnet addresses alongside the livenet ones.

Every deployment address changed, and the contracts were renamed and curated along the way, so this is a breaking change for @cartesi/client, @cartesi/react and @cartesi/codec.

@cartesi/wagmi-plugin

  • DEFAULT_VERSION is now 3.0.0-alpha.9, with new SHA-256 hashes. Release assets are named cartesi-rollups-contracts-<version>-*.tar.gz since alpha.7, so the default URLs changed shape too.
  • Deployment addresses are read from the plaintext <chainId>/<Contract>.txt files that alpha.8 introduced, which deprecate the JSON ones. The JSON files are no longer read: a deployments tarball older than alpha.8 now fails with an explicit error instead of silently generating contracts without addresses.
  • New anvil option, defaulting to the release's anvil tarball (DEFAULT_ANVIL, DEFAULT_ANVIL_VERSION). Besides the state dump the devnet is started from, that tarball carries the deployment addresses on chain 31337, which are now merged into the generated contracts. Set anvil: false to generate livenet addresses only.
  • TestUsdWithdrawalOutputBuilder is deployed on the devnet under a name no artifact matches, because the release publishes IUsdWithdrawalOutputBuilder but not the concrete contract the factory deploys. It takes the interface ABI through an alias, so it is generated like any other deployed contract.

@cartesi/client, @cartesi/react and @cartesi/codec

  • ERC is spelled Erc in contract names since alpha.7, so the generated identifiers follow: ISafeERC20TransferISafeErc20Transfer, and the portal deposit functions become depositErc20Tokens, depositErc721Token, depositSingleErc1155Token and depositBatchErc1155Token. erc20PortalAbi and friends keep their names.
  • The DataAvailability library was removed from rollups-contracts in alpha.7, so its ABI is no longer generated. The node still reports data_availability as a call encoded against it, so @cartesi/client decodes that field against a local copy of the ABI and Application.dataAvailability is unchanged.
  • The release artifacts are already restricted to the contracts clients are expected to use, so @cartesi/client and @cartesi/react no longer curate an include list and generate the whole set. RefundOutputBuilder, the devnet test tokens (TestFungibleToken, TestNonFungibleToken, TestMultiToken, TestUsdc) and TestUsdWithdrawalOutputBuilder join the previously generated contracts. @cartesi/codec keeps its list, since it only needs the input and output interfaces plus the portals it dispatches deposits on.
  • Devnet addresses are generated too. The core contracts are deployed deterministically, at the same addresses on the devnet as on every livenet, so they still collapse to a single address; only the devnet-only contracts are chain-specific.

Verification

pnpm build, @cartesi/codec (70 tests) and @cartesi/client (6 tests) pass, along with biome check.

https://claude.ai/code/session_01MfKJYzfUL9quYaKBwQ7CwW

@changeset-bot

changeset-bot Bot commented Aug 10, 2026

Copy link
Copy Markdown

🦋 Changeset detected

Latest commit: 3e3c26e

The changes in this PR will be included in the next version bump.

This PR includes changesets to release 4 packages
Name Type
@cartesi/client Major
@cartesi/react Major
@cartesi/codec Major
@cartesi/wagmi-plugin Minor

Not sure what this means? Click here to learn what changesets are.

Click here if you're a maintainer who wants to add another changeset to this PR

@tuler tuler changed the title Upgrade to rollups-contracts 3.0.0-alpha.7 Upgrade to rollups-contracts 3.0.0-alpha.8 Aug 13, 2026
@tuler
tuler marked this pull request as ready for review August 13, 2026 14:56
Comment thread packages/wagmi-plugin/src/plugin.ts

@guidanoli guidanoli left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Glad to see TXT files were easier to parse in TypeScript!
Just raising two minor documentation nits.

Comment thread apps/docs/pages/wagmi-plugin/index.mdx Outdated
Comment thread packages/wagmi-plugin/README.md Outdated
@brunomenezes

Copy link
Copy Markdown
Contributor

@tuler, even though I don't see it in the changed files here when I check out the branch, I got some warnings and noticed the git submodule file is missing. Also, the README in the root matches the main branch, not the prerelease/v2-alpha. I think the base branch of what Claude checked out was main rather than prerelease/v2-alpha

claude added 7 commits August 17, 2026 12:39
The release assets were renamed from `rollups-contracts-<version>-*.tar.gz`
to `cartesi-rollups-contracts-<version>-*.tar.gz`, so the default tarball
URLs change along with `DEFAULT_VERSION` and the expected SHA-256 hashes.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01MfKJYzfUL9quYaKBwQ7CwW
Update the `include` lists to the renamed contracts (`ERC` is now spelled
`Erc`), drop the `DataAvailability` library, which the release removed, and
pick up `RefundOutputBuilder`, which it deploys as a core contract.

The node still reports an application's data availability as a call encoded
against the removed library, so `@cartesi/client` keeps a local copy of its
ABI to decode that field, leaving `Application.dataAvailability` unchanged.

The docs deposit examples follow the portal function renames.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01MfKJYzfUL9quYaKBwQ7CwW
3.0.0-alpha.7 restricts the published build artifacts to the contracts
clients are expected to use, so curating an `include` list here is
redundant. The codec package keeps its list, as it only needs the input
and output interfaces plus the portals it dispatches deposits on.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01MfKJYzfUL9quYaKBwQ7CwW
The release is additive over alpha.7: no contract renames or interface
changes, a new devnet `TestUsdc` token, and redeployed core contracts, so
every address changes again.

It also writes deployment addresses as plaintext `<Contract>.txt` files
and deprecates the JSON ones, advising clients to migrate. Read the
plaintext files when a chain directory has them, taking the contract name
from the file name, and keep reading the JSON files otherwise, so older
releases still work.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01MfKJYzfUL9quYaKBwQ7CwW
… files

Nothing older than rollups-contracts 3.0.0-alpha.8 needs to be supported,
so drop the JSON deployment reader instead of keeping it as a fallback. A
chain directory without plaintext files now fails with an explicit error,
rather than silently generating contracts without addresses.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01MfKJYzfUL9quYaKBwQ7CwW
They pinned 3.0.0-alpha.6, which ships neither the `cartesi-` prefixed
release assets nor the plaintext deployment files the plugin now reads, so
the example no longer worked. Point it at 3.0.0-alpha.8 and state that the
release must be that one or later.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01MfKJYzfUL9quYaKBwQ7CwW
`downloadAndExtract` no longer caches across runs, so the page contradicted
the README and the plugin documentation.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01MfKJYzfUL9quYaKBwQ7CwW
@tuler
tuler force-pushed the claude/wagmi-plugin-version-bump-e8wqpt branch from 5fbf1fc to 0c9a591 Compare August 17, 2026 12:44
@tuler

tuler commented Aug 17, 2026

Copy link
Copy Markdown
Member Author

I think the base branch of what Claude checked out was main rather than prerelease/v2-alpha

No, it was just a little behind, not main. Started when @cartesi/wagmi-plugin@1.0.0-alpha.2 was released. Just needed a rebase. Done now. Pull-rebase on your end.

@brunomenezes brunomenezes moved this to 👍 Waiting Merge in Rollups Tooling Aug 19, 2026
@brunomenezes

Copy link
Copy Markdown
Contributor

@tuler I know there is the PRT PR #162. However, should we include the cartesi-rollups-contracts-3.0.0-alpha.8-anvil-1.5.1 artifact? All the Test* contract address information for devnet is inside that tar.gz. The cartesi-rollups-contracts-3.0.0-alpha.8-artifacts.tar.gz only contains the ABIs. As I am working on a replacement for the internal cli devnet package usage in the cartesi-cli, that is a missing piece for me.

The release is additive over alpha.8, but it also ships an anvil tarball
carrying the deployment addresses on the devnet (chain 31337) next to the
state dump the devnet is started from. Read it through the new `anvil`
option, defaulting to the `DEFAULT_VERSION` release and disabled with
`false`, and merge those addresses into the generated contracts.

The devnet is where the test tokens and the USD withdrawal output builder
live. The latter is stored as `TestUsdWithdrawalOutputBuilder`, a name no
artifact matches, since the release publishes the interface but not the
concrete contract the factory deploys, so it takes the ABI of
`IUsdWithdrawalOutputBuilder` through an alias.

Core contracts are deployed at the same addresses on the devnet as on the
livenets, so they keep collapsing to a single address.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01MfKJYzfUL9quYaKBwQ7CwW
@tuler tuler changed the title Upgrade to rollups-contracts 3.0.0-alpha.8 Upgrade to rollups-contracts 3.0.0-alpha.9 Aug 19, 2026
@tuler
tuler merged commit 69d28db into prerelease/v2-alpha Aug 19, 2026
3 checks passed
@tuler
tuler deleted the claude/wagmi-plugin-version-bump-e8wqpt branch August 19, 2026 19:24
@github-project-automation github-project-automation Bot moved this from 👍 Waiting Merge to 📦 Done in Rollups Tooling Aug 19, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

Status: 📦 Done

Development

Successfully merging this pull request may close these issues.

4 participants