Skip to content

Release v0.4.0 (rc)#318

Merged
arr00 merged 4 commits intorelease-v0.4from
changeset-release/release-v0.4
Mar 16, 2026
Merged

Release v0.4.0 (rc)#318
arr00 merged 4 commits intorelease-v0.4from
changeset-release/release-v0.4

Conversation

@github-actions
Copy link
Copy Markdown
Contributor

@github-actions github-actions bot commented Mar 5, 2026

This PR was opened by the Changesets release GitHub action. When you're ready to do a release, you can merge this and publish to npm yourself or setup this action to publish automatically. If you're not ready to do a release yet, that's fine, whenever you add more changesets to release-v0.4, this PR will be updated.

⚠️⚠️⚠️⚠️⚠️⚠️

release-v0.4 is currently in pre mode so this branch has prereleases rather than normal releases. If you want to exit prereleases, run changeset pre exit on release-v0.4.

⚠️⚠️⚠️⚠️⚠️⚠️

Releases

openzeppelin-confidential-contracts@0.4.0-rc.0

openzeppelin-confidential-contracts

0.4.0-rc.0 (2026-03-12)

  • Migrate @fhevm/solidity dependency to 0.11.1 (#311)
  • Upgrade openzeppelin/contracts and openzeppelin/contracts-upgradeable to v5.6.1 (#314)

Token

  • ERC7984ERC20Wrapper: use a bytes32 unwrap request identifier instead of identifying batches by the euint64 unwrap amount. (#326)
  • ERC7984ERC20Wrapper: Support ERC-165 interface detection on ERC7984ERC20Wrapper. (#267)
  • ERC7984ERC20Wrapper: return the amount of wrapped token sent on wrap calls. (#307)
  • ERC7984ERC20Wrapper: return unwrapped amount on unwrap calls (#288)
  • ERC7984Restricted, ERC7984Rwa: Rename isUserAllowed to canTransact (#291)
  • ERC7984ERC20Wrapper: revert on wrap if there is a chance of total supply overflow. (#268)

Finance

  • BatcherConfidential: A batching primitive that enables routing between two ERC7984ERC20Wrapper contracts via a non-confidential route. (#293)

Utils

  • HandleAccessManager: change _validateHandleAllowance to return a boolean and validate it. (#303)

0.3.1 (2026-01-06)

Bug fixes

  • ERC7984ERC20Wrapper: revert on wrap if there is a chance of total supply overflow. (#268)

0.3.0 (2025-11-28)

  • Migrate @fhevm/solidity from v0.7.0 to 0.9.1 (#202, #248, #254)

Token

  • Rename all ConfidentialFungibleToken files and contracts to use ERC7984 instead. (#158)
  • ERC7984: Change tokenURI() to contractURI() following change in the ERC. (#209)
  • ERC7984: Support ERC-165 interface detection on ERC-7984. (#246)
  • IERC7984: Change tokenURI() to contractURI() following change in the ERC. (#209)
  • IERC7984: Support ERC-165 interface detection on ERC-7984. (#246)
  • ERC7984Omnibus: Add an extension of ERC7984 that exposes new functions for transferring between confidential subaccounts on omnibus wallets. (#186)
  • ERC7984ObserverAccess: Add an extension for ERC7984, which allows each account to add an observer who is given access to their transfer and balance amounts. (#148)
  • ERC7984Restricted: An extension of ERC7984 that implements user account transfer restrictions. (#182)
  • ERC7984Freezable: Add an extension to ERC7984 that implements internal functions with the ability to freeze/unfreeze user tokens. (#151)
  • ERC7984Rwa: An extension of ERC7984, that supports confidential Real World Assets (RWAs). (#160)

Utils

  • FHESafeMath: Add tryAdd and trySub functions that return 0 upon failure. (#206)
  • FHESafeMath: Support non-initialized inputs in tryIncrease(..)/tryDecrease(..). (#183)

0.2.0 (2025-08-14)

  • Upgrade all contracts to use @fhevm/solidity 0.7.0. (#27)

Token

  • IConfidentialFungibleToken: Prefix totalSupply and balanceOf functions with confidential. (#93)
  • IConfidentialFungibleToken: Rename EncryptedAmountDisclosed event to AmountDisclosed. (#93)
  • ConfidentialFungibleToken: Change the default decimals from 9 to 6. (#74)
  • ConfidentialFungibleTokenERC20Wrapper: Add an internal function to allow overriding the max decimals used for wrapped tokens. (#89)
  • ConfidentialFungibleTokenERC20Wrapper: Add an internal function to allow overriding the underlying decimals fallback value. (#133)

Governance

  • VotesConfidential: Add votes governance utility for keeping track of FHE vote delegations. (#40)
  • ConfidentialFungibleTokenVotes: Add an extension of ConfidentialFungibleToken that implements VotesConfidential. (#40)

Finance

  • VestingWalletConfidential: A vesting wallet that releases confidential tokens owned by it according to a defined vesting schedule. (#91)
  • VestingWalletCliffConfidential: A variant of VestingWalletConfidential which adds a cliff period to the vesting schedule. (#91)
  • VestingWalletConfidentialFactory: A generalized factory that allows for batch funding of confidential vesting wallets. (#102)

Misc

  • HandleAccessManager: Minimal contract that adds a function to give allowance to callers for a given ciphertext handle. (#143)
  • ERC7821WithExecutor: Add an abstract contract that inherits from ERC7821 and adds an executor role. (#102)
  • CheckpointsConfidential: Add a library for handling checkpoints with confidential value types. (#60)
  • TFHESafeMath: Renamed to FHESafeMath. (#137)

@github-actions github-actions bot requested a review from a team as a code owner March 5, 2026 22:12
@coderabbitai
Copy link
Copy Markdown
Contributor

coderabbitai bot commented Mar 5, 2026

Important

Review skipped

Auto reviews are disabled on base/target branches other than the default branch.

Please check the settings in the CodeRabbit UI or the .coderabbit.yaml file in this repository. To trigger a single review, invoke the @coderabbitai review command.

⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro

Run ID: e5681310-b08a-46a7-90ba-a124c3a845b1

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.

Use the checkbox below for a quick retry:

  • 🔍 Trigger review
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Post copyable unit tests in a comment
  • Commit unit tests in branch changeset-release/release-v0.4
📝 Coding Plan
  • Generate coding plan for human review comments

Comment @coderabbitai help to get the list of available commands and usage tips.

Tip

CodeRabbit can use TruffleHog to scan for secrets in your code with verification capabilities.

Add a TruffleHog config file (e.g. trufflehog-config.yml, trufflehog.yml) to your project to customize detectors and scanning behavior. The tool runs only when a config file is present.

@github-actions github-actions bot force-pushed the changeset-release/release-v0.4 branch 5 times, most recently from f07a607 to 2fd1eb6 Compare March 12, 2026 19:20
@github-actions github-actions bot force-pushed the changeset-release/release-v0.4 branch from 2fd1eb6 to 0d63802 Compare March 12, 2026 19:41
@arr00 arr00 requested a review from james-toussaint March 16, 2026 02:54
Co-authored-by: James Toussaint <33313130+james-toussaint@users.noreply.github.com>
@arr00 arr00 merged commit 9b1b37e into release-v0.4 Mar 16, 2026
11 checks passed
@arr00 arr00 deleted the changeset-release/release-v0.4 branch March 16, 2026 15:37
arr00 added a commit that referenced this pull request Apr 1, 2026
* Start release candidate

* Fix local docs generation (#320)

* remove properties symlink

* add properties.js

* lint fix

* Remove backwards compatibility from Batcher (#321)

* Remove backwards compatibility from Batcher

* Apply suggestion from @arr00

* Validate `fromToken` and `toToken` on construction (#322)

* Validate `fromToken` on construction

* use `ERC165Checker`

* check toToken as well

* directly validate to and from token

* Add additional functions to `IERC7984ERC20Wrapper` (#323)

* remove incorrect docs on `unwrap` function

* add finalize unwrap and rate to wrapper interface

* update batcher to use unwrap request ids instead of unwrap amounts

* add `unwrapAmount` to wrapper interface for unwrap request introspection

* additional docs

* call getter for `unwrapAmount` in `finalizeUnwrap`

* update events and errors appropriately

* remove `ERC7984ERC20Wrapper` import

* fix import order

* Move events to interface from `ERC7984ERC20Wrapper`

* add note on request id for `unwrap`

* change mapping to be of `bytes32` identifiers

* add changeset

* Allow claiming on behalf of another account in batcher (#324)

* Allow claiming on behalf of another account in batcher

* revert on claim if users not part of the batch

* add error on quit too

* Add additional warnings to the batcher (#325)

* Return a bytes32 unwrap id from the `_unwrap` function in `BatcherConfidential` (#326)

* Return a bytes32 unwrap id from the `_unwrap` function in `BatcherConfidential`

* modify warning

* Document possible rounding down of user deposits (#327)

* Document possible rounding down of user deposits

* add contract level comment as well

* up

* Release v0.4.0 (rc) (#318)

* Release v0.4.0 (rc)

* update changelog

* update changelog

* Apply suggestion from @james-toussaint

Co-authored-by: James Toussaint <33313130+james-toussaint@users.noreply.github.com>

---------

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Arr00 <13561405+arr00@users.noreply.github.com>
Co-authored-by: James Toussaint <33313130+james-toussaint@users.noreply.github.com>

* Update node version to 24.x in CI (#328)

* Exit release candidate

* Release v0.4.0 (#335)

* Release v0.4.0

* update changelog

* remove changelog duplicate

---------

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Arr00 <13561405+arr00@users.noreply.github.com>

---------

Co-authored-by: github-actions <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Arr00 <13561405+arr00@users.noreply.github.com>
Co-authored-by: James Toussaint <33313130+james-toussaint@users.noreply.github.com>
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