Skip to content

feat: update wasm module root for consensus v51.1#644

Merged
spsjvc merged 6 commits intomainfrom
chore/bump-wasmroot
Feb 26, 2026
Merged

feat: update wasm module root for consensus v51.1#644
spsjvc merged 6 commits intomainfrom
chore/bump-wasmroot

Conversation

@alxdca
Copy link
Contributor

@alxdca alxdca commented Feb 24, 2026

This PR bumps the wasm root to 0xc2c02df561d4afaf9a1d6785f70098ec3874765c638e3cb6dbe8d3c83333e14c (consensus v51.1).

It also adds guards to prevent users from using the following wasm roots:

  • 0x8a7513bf7bb3e3db04b0d982d0e973bcf57bf8b88aef7c6d03dba3a81a56a499 (consensus v51)
  • 0x28b6ad83ed87b21a87c73f7a0296a135ebc7074e449efb289ececccad771ccd6 (older root for consensus v51.1)

The guards are skipped if the chain is any arbitrum chain.

}
}

if (!chainIsArbitrum(chainId) && isBlacklistedWasmModuleRoot(wasmModuleRoot)) {
Copy link
Member

Choose a reason for hiding this comment

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

We don't need the chainIsArbitrum check, since this is only for deployment of brand new chains. It will never evaluate to true

Copy link
Contributor Author

Choose a reason for hiding this comment

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

Indeed. Should we however prevent upgrades to one of these wasm roots ? Prod arbitrum chains won't ever upgrade to these older wasm roots but what about internal tests ?

Copy link
Member

Choose a reason for hiding this comment

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

We could cover the upgrade path in another PR once we start working on upgrades. I wouldn't worry about it too much as only RaaS-es might do so. But they also wait on a heads-up from us before upgrading so I think we are ok

},
] as const satisfies readonly ConsensusRelease[];

const blacklistedConsensusReleases = [
Copy link
Member

Choose a reason for hiding this comment

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

Maybe we can add an optional disabled?: boolean property on the ConsensusRelease type that we only add to those that we do not allow. Then the check in src/createRollupPrepareTransactionRequest.ts would look something like this:

if (wasmModuleRoot.disabled) {
    throw new Error();
}

Copy link
Contributor Author

Choose a reason for hiding this comment

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

Yes, that's definitely cleaner. However getConsensusReleaseByVersion needs a refactor in that case since we may have multiple wasm roots for a single consensus version, as we have with 51.1. I'll have a look at it.

Copy link
Member

@spsjvc spsjvc Feb 24, 2026

Choose a reason for hiding this comment

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

Ah, I see what you mean. I think the 51.1 situation is unique and we hopefully won't have a similar one in the future. We could just add a special case in getConsensusReleaseByVersion for 51.1 to return the proper one, and for the standard case just find by version

@alxdca alxdca force-pushed the chore/bump-wasmroot branch from b9bb5b5 to 21f427c Compare February 25, 2026 07:28
@alxdca alxdca requested a review from spsjvc February 25, 2026 09:51
);
}

const chainId = params.config.chainId;
Copy link
Member

@spsjvc spsjvc Feb 25, 2026

Choose a reason for hiding this comment

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

I don't think we're using this anymore

// https://github.com/OffchainLabs/nitro/releases/tag/consensus-v51.1
version: 51.1,
wasmModuleRoot: '0x28b6ad83ed87b21a87c73f7a0296a135ebc7074e449efb289ececccad771ccd6',
maxArbOSVersion: 51.1,
Copy link
Member

Choose a reason for hiding this comment

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

this is actually an error from before but we might as well fix it here

Suggested change
maxArbOSVersion: 51.1,
maxArbOSVersion: 51,

// https://github.com/OffchainLabs/nitro/releases/tag/consensus-v51.1
version: 51.1,
wasmModuleRoot: '0xc2c02df561d4afaf9a1d6785f70098ec3874765c638e3cb6dbe8d3c83333e14c',
maxArbOSVersion: 51.1,
Copy link
Member

Choose a reason for hiding this comment

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

same here

Suggested change
maxArbOSVersion: 51.1,
maxArbOSVersion: 51,

@spsjvc spsjvc changed the title chore: bump wasm root feat: update wasm module root for consensus v51.1 Feb 25, 2026
@spsjvc spsjvc self-requested a review February 26, 2026 14:23
@spsjvc spsjvc merged commit 86b6439 into main Feb 26, 2026
9 checks passed
@spsjvc spsjvc deleted the chore/bump-wasmroot branch February 26, 2026 14:24
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants